Oracle資料庫快照技術能同步不同表結構的資料嗎

2021-03-03 20:58:52 字數 4259 閱讀 1617

1樓:匿名使用者

可以bai通過database link建立一個mv,物du化檢視,來實現資料同步,zhi

至於型別轉換dao簡單的在定義中實現就可以了專,to_char(),這種物化屬檢視的重新整理是不可以自動的,需要手動來重新整理,或者定時重新整理。

具體看你的需求了,自己找詳細點的mv資料瞭解一下吧。

2樓:jg_陳

你先把快照的定義弄清楚再問這個問題!

3樓:匿名使用者

你還是再瞭解下什麼是快照吧

如何實現兩個oracle資料庫的資料同步?

4樓:匿名使用者

為方便完成指定資料表的同步操作,可以採用dblink與merge結合的方法完成。

62616964757a686964616fe4b893e5b19e31333337613762

操作環境: 此資料庫伺服器ip為192.168.

196.76,有center與branch兩個庫,一般需要將center的表資料同步到branch,center為源庫,branch為目標庫,具體步驟如下:

1.在源庫建立到目標庫的dblink

create database link branch --輸入所要建立dblink的名稱,自定義

connect to dbuser identified by 「password」 --設定連線遠端資料庫的使用者名稱和密碼

using '192.168.196.76/branch'; --指定目標資料庫的連線方式,可用tns名稱

在建立dblink時,要注意,有時候可能會報使用者名稱和密碼錯誤,但實際上我們所輸入的賬戶資訊是正確的,此時就注意將密碼的大小寫按伺服器上所設定的輸入,並在賬號密碼前號加上雙引號(伺服器版本不同造成的)。

2.成功後驗證dblink

select * from tb_bd_action@branch; --查詢建立好的brach庫

正常情況下,如果建立dblink成功,可採用該方式訪問到遠端資料庫的表.

3.通過merge語句完成表資料同步

此例中需要將center庫中的tb_sys_sqlscripe表同步到branch,簡單的語法如下:

merge into tb_sys_sqlscripe@branch b using tb_sys_sqlscripe c on (b.pk=c.pk) --從center將表merge到branch,同步的依據是兩個表的pk

when matched then update set b.sqlscripe=c.sqlscripe,b.

author=c.author --如果pk值是相同則將指定表的值更新到目標表

when not matched then --如果pk值不一至,則將源表中的資料整條插入到目標表中

insert values (c.pk, c.fk, c.

createtime, c.lastmodifytime,c.author,c.

module,c.deleteflag, c.scripttype);

***mit; --記得merge後必須***mit,否則更改未能提交

4.為方便每次需要同步時自動完成同步工作,可將該語句做成儲存過程或指令碼來定時執行或按要求手動執行,簡單說一下建立指令碼的方法:

a.建立merge資料夾

b.先將merge語句寫完整後,存到merge.sql檔案中

c.新建merge.bat檔案,編輯後寫入以下內容

sqlplus user/password@serverip/database @"%cd%\merge.sql"

5樓:千鋒教育

datagurd:

主要備來

庫的方式,就是資料庫對自資料庫的備bai份方式,主要是解決容災的。du

流復zhi制:

主要是利用oracle的歸檔日誌,dao進行增量備份來實現的,不僅可以配置只複製某些表,還可以配置僅複製某些表上的ddl或dml。可以複製到表,使用者,資料庫級別。

高階複製:

主要是基於觸發器的原理來觸發資料同步的,因此,高階複製無法實現使用者,資料庫級別的物件複製,只能做些表、索引和儲存過程的複製。

6樓:王蘆詩涵

1、首先在抄oracle_b上做dblink連線oracle_a2、然後

襲做個儲存過程

大致bai如下:

1、找到table_db主鍵,duselect 主鍵 from table_db@dblink minus select table_db from table_db找到差異zhi資料

2、然後插入到oracle_b,再寫個daojob.定時執行這個儲存過程

7樓:匿名使用者

--建立連結伺服器

exec sp_addlinkedserver 'itsv ', ' ', 'sqloledb ', '遠端伺服器名或ip地址 '

exec sp_addlinkedsrvlogin 'itsv ', 'false ',null, '使用者名稱 ', '密碼 '

--查詢示例

select * from itsv.資料庫名.dbo.表名

--匯入示例

select * into 表 from itsv.資料庫名.dbo.表名

--以後不再使用時刪除連結伺服器

exec sp_dropserver 'itsv ', 'droplogins '

--連線遠端/區域網資料(openrowset/openquery/opendatasource)

--1、openrowset

--查詢示例

select * from openrowset( 'sqloledb ', 'sql伺服器名 '; '使用者名稱 '; '密碼 ',資料庫名.dbo.表名)

--生成本地表

select * into 表 from openrowset( 'sqloledb ', 'sql伺服器名 '; '使用者名稱 '; '密碼 ',資料庫名.dbo.表名)

--把本地表匯入遠端表

insert openrowset( 'sqloledb ', 'sql伺服器名 '; '使用者名稱 '; '密碼 ',資料庫名.dbo.表名)

select *from 本地表

--更新本地表

update b

set b.列a=a.列a

from openrowset( 'sqloledb ', 'sql伺服器名 '; '使用者名稱 '; '密碼 ',資料庫名.dbo.表名)as a inner join 本地表 b

on a.column1=b.column1

--openquery用法需要建立一個連線

--首先建立一個連線建立連結伺服器

exec sp_addlinkedserver 'itsv ', ' ', 'sqloledb ', '遠端伺服器名或ip地址 '

--查詢

select *

from openquery(itsv, 'select * from 資料庫.dbo.表名 ')

--把本地表匯入遠端表

insert openquery(itsv, 'select * from 資料庫.dbo.表名 ')

select * from 本地表

--更新本地表

update b

set b.列b=a.列b

from openquery(itsv, 'select * from 資料庫.dbo.表名 ') as a

inner join 本地表 b on a.列a=b.列a

--3、opendatasource/openrowset

select *

from opendatasource( 'sqloledb ', 'data source=ip/servername;user id=登陸名;password=密碼 ' ).test.dbo.

roy_ta

--把本地表匯入遠端表

insert opendatasource( 'sqloledb ', 'data source=ip/servername;user id=登陸名;password=密碼 ').資料庫.dbo.

表名select * from

8樓:匿名使用者

可以用treesoft, 資料定時同步,資料維護功能都具備。

9樓:

執行定時的 exp 資料庫a, 然後 imp 資料庫b

sql連線oracle資料庫tables裡面不顯示錶

1 通過sysdb角色檢視資料庫是否正常,然後進入下一步。2 解壓檔案的32位客戶端如圖所示 需要把這個解壓到安裝目錄下面的product檔案目錄下面。3 將oracle安裝目錄中的tnsnames.ora 位於 oracle home network admin中 拷貝到該目錄下。4 可以通過解壓...

oracle資料庫密碼多久過期,oracle資料庫密碼過期時間查詢?

預設密碼過期時間是180天。oracle資料庫密碼過期時間查詢?sqlplus sys password as sysdba 這個是作為管理員登陸 把oracle密碼預設天數修改為無限制 select from dba profiles where profile default and resou...

Oracle資料庫分類彙總方法,Oracle資料分類統計的sql語句怎麼寫

select 公司,case when grouping 部門 1 then 公司合計 else 部門 end as 部門,sum 工資 工資總額 from a group by rollup 公司,部門 上面這個,資料是先出 公司 部門 的組合的 key 得到該公司的每個部門的總和 最後出一個 公...