P0 - CC.P: bỏ đồng bộ PParams: SynchOrder=15 startpage: Thêm đồng bộ Alter table CHXD.Petw ALTER COLUMN PETI Bigint Alter table [COMPANY].Petw ALTER COLUMN B Bigint [COMPANY].POS Thêm trường AYC VARCHAR2(800) NULL, Basetab_Seq NUMBER(18), TRX_Seq NUMBER(18), LastSQLLogID NUMBER(18), LastSQLLogTime NUMBER(18), SYNCH_SEQ_LASTVAL NUMBER(18), K1 VARCHAR2(200) NULL, K2 VARCHAR2(200) NULL, K3 VARCHAR2(200) NULL, K4 VARCHAR2(200) NULL, K5 VARCHAR2(200) NULL, Bổ sung bảng tại Server CREATE TABLE [COMPANY].[SQLLog]( [I] [bigint] Primary key NOT NULL, [RecID] [bigint] NULL, [dbtab] [varchar](40) NULL, [Op] [char](1) NULL, [LogText] [nvarchar](2000) NULL, [LogTime] [bigint] NULL, [LogStatus] [smallint] NULL); CREATE TABLE [COMPANY].SynchErrorLog( ErrTime NUMBER(16), POSID VARCHAR2(20), COMPANYID VARCHAR2(20), ERRTEXT VARCHAR2(2000), ErrSQL VARCHAR2(2000)); CREATE TABLE [COMPANY].SynchCmdResult( Recvtime NUMBER(16), POSID VARCHAR2(20), COMPANYID VARCHAR2(20), F1 VARCHAR2(400), F2 VARCHAR2(400), F3 VARCHAR2(400), F4 VARCHAR2(400), F5 VARCHAR2(400)); View tại Server CREATE TABLE [HQ].[SQLLOG]( [I] [bigint] PRIMARY KEY NOT NULL, [RecID] [bigint] NULL, [dbtab] [varchar](40) NULL, [Op] [char](1) NULL, [LogText] [nvarchar](4000) NULL, [LogTime] [bigint] NULL, [LogStatus] [int] NULL); grant insert,select,update,delete on HQ.SQLLOG to [COMPANY]USR; CREATE VIEW [COMPANY].[v_SynchErrorLog] As (Select ROW_NUMBER() OVER(Order by ERRTIME) As I, POSID, ERRTIME, COMPANYID, ERRTEXT, ERRSQL From [COMPANY].SynchErrorLog); CREATE VIEW [COMPANY].[v_SynchCmdResult] As (Select ROW_NUMBER() OVER(Order by Recvtime) As I, SynchCmdResult.* From [COMPANY].SynchCmdResult); 1. Select lấy thông tin LASTSQLLOGID tại Center của từng CHXD thuộc CC Select I,C,LASTSQLLOGID From POS Order by C 2. Select từ SQLLOG Client lấy toàn bộ Log có I>LASTSQLLOGID ở (1). Nếu đơn vị không cần lấy Log TDH thì câu lệnh thêm điều kiện "And dbtab not in ('PumpTotalLog','PumpSaleLog','TankLog')" để loại bỏ Select I, Logtext from Chxd.SQLLOG where I>[LASTSQLLOGID] Order by I 3. Copy Logtext ở (2) + ";" ở cuối để thực hiện chạy câu lệnh trên Server 4. Update POS Set LASTSQLLOGID = Max(I) ở (2) Where C= [Ma CHXD] 5. Cài lại CHXD B1: Giữ nguyên DB cũ B2: Cài lại B3: Đăng ký B4: Lấy POSH ở DB mới vào DB cũ trong Sysparam B5: Đổi tên DB cũ thành mới B6: Đổi pass ayusr, Synusr theo mới If NOT EXISTS(SELECT name FROM master.dbo.syslogins WHERE name = 'AYSUSR') BEGIN CREATE LOGIN AYSUSR WITH PASSWORD = 'incywincy240720181606', DEFAULT_DATABASE=AYSDB_240720181606 END ELSE BEGIN ALTER LOGIN AYSUSR WITH PASSWORD = 'incywincy240720181606', DEFAULT_DATABASE=AYSDB_240720181606 END; If NOT EXISTS(SELECT name FROM master.dbo.syslogins WHERE name = 'SYNUSR') BEGIN CREATE LOGIN SYNUSR WITH PASSWORD = 'incywincy240720181606', DEFAULT_DATABASE=AYSDB_240720181606 END ELSE BEGIN ALTER LOGIN SYNUSR WITH PASSWORD = 'incywincy240720181606', DEFAULT_DATABASE=AYSDB_240720181606 END; Use AYSDB_240720181606; ALTER USER AYSUSR WITH LOGIN = AYSUSR; ALTER USER SYNUSR WITH LOGIN = SYNUSR; CH04 Key 180140174171178165160161174121143141136139168161160158119143161174178161174121127132148128108112119128157176157158157175161121125149143128126155110112108115110108109116109114108114119145175161174092133128121125149143145143142119140157175175179171174160121165170159181179165170159181110112108115110108109116109114108114119985808