**自:
如果要維護多套開發與測試的資料庫環境,如果schema變動很頻繁,那dba的工作量也就非常可觀,稍一不慎,就會給開發以及測試有不好的影響,所以同步開發與測試環境的是必不可少的,d.c.b.a曾經開發過乙個比較並同步schema的工具,但需要手工執行去同步,偶這次介紹的是通過job+procedure來完成的。
1 在源庫上建立捕獲ddl的觸發器與表
a 建立表
create table manager.ddl$trace
(login_user varchar2(30),
ddl_time date,
program varchar2(64),
sid number,
schema_user varchar2(30),
schema_object varchar2(30),
ddl_sql varchar2(4000),
id number not null,
status number,
errm varchar2(4000)
)b 建立觸發器
create or replace trigger ddl_trigger
before ddl on database
/*--last modify date:2006-10-18
--last modifier:yekai
--desc:replication ddl to test database
*/declare
n number;
str_stmt varchar2(4000);
sql_text ora_name_list_t;
l_trace number;
l_sid number;
str_session v$session%rowtype;
begin
--get ddl script
n := ora_sql_txt(sql_text);
for i in 1..n loop
str_stmt := substr(str_stmt||sql_text(i), 1, 3000);
end loop;
--get modify status and permission
select count(*) into l_trace
from dual
where sys_context('userenv','ip_address') is not null
and lower(str_stmt) not like 'truncate% purge snapshot log%'
and lower(str_stmt) not like 'alter% compile%'
and lower(str_stmt) not like 'alter% session%'
and lower(str_stmt) not like '%create%'
and lower(str_stmt) not like '%alter%'
and lower(str_stmt) not like '%drop%'
and lower(str_stmt) not like '%grant%';
--get session information
select * into str_session
from v$session
where sid = (select sid from v$mystat where rownum = 1);
條碼配置正式庫與測試庫同步
目標 1 相同的程式和.r.結果一致 2 相同的配置內容 過程一致 a 13讀入的字段要一致 b 14可以修改已經讀入的字段。c 16一致 版本 維護人 校驗 預設值 迴圈層數 字段順序 資料格式程式邏輯要一致。d 19要一致 編譯版本 許可權要一致。步驟 1 比對檔案.p i d,如果19以後檔案...
資料庫 catalog與schema簡介
在sql環境下catalog和schema都屬於抽象概念,主要用來解決命名衝突問題 乙個資料庫系統包含多個catalog,每個catalog包含多個schema,每個schema包含多個資料庫物件 表 檢視 欄位等 如資料庫物件表的全限定名可表示為 catalog名.schema名.表名 從實現的角...
資料庫 schema含義
資料庫schema有兩種含義,一種是概念上的schema,指的是一組ddl語句集,該語句集完整地描述了資料庫的結構。還有一種是物理上的schema,指的是資料庫中的乙個名字空間,它包含一組表 檢視和儲存過程等命名物件。物理schema可以通過標準sql語句來建立 更新和修改。例如以下sql語句建立了...