Changing identity column from INT to BIGINT
As there is a primary key defined on identity column you wont be able to directly alter this column. 

Both the approaches that you have mentioned in your question can be used and downtime depends on how your server is performing and number of rows reside in that table.


  
  Drop the PK and alter the column; or
  


First drop the PK

/****** Object: DROP Index [PK_DatabaseLog_DatabaseLogID]******/

ALTER TABLE [dbo].[TableName] DROP CONSTRAINT [PK_TableName_ID]
GO


Alter Column

ALTER TABLE [dbo].[TableName] ALTER COLUMN [dbo.ID] BIGINT


Add Primary key 

/****** Object: ADD Index [PK_DatabaseLog_DatabaseLogID]******/
ALTER TABLE [dbo].[TableName] ADD  CONSTRAINT [PK_TableName_ID] PRIMARY KEY CLUSTERED 
(
    [ID] ASC
)


This approach usually does not take much time. In my environment it takes mare seconds on big tables which have more than 5 million rows.


  
  The copy-drop-rename method, as described
  


You can use this approach as well. However, for this approach you need more downtime than Approach one as you have to sync the tables.