每日同步環境SHELL指令碼
最近在寫同步環境資料的指令碼,寫完了與大家分享一下:
由於我們的線上環境中有lob欄位,而兩個庫的表空間名稱又不一樣,所以在drop物件以後,imp時會有問題,因為lob欄位的storage引數中寫死了表空間的名稱,所以我考慮用truncate table的方法來同步資料,不動表結構。
一、 建立syn.sh指令碼
export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2/db
export PATH=/usr/bin:/etc/:/usr/sbin:/usr/ucb:/usr/local/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:/usr/bin/X11:/sbin:/oracle/soft/patch/OPatch:$
PATH
export NLS_LANG=American_America.ZHS16GBK
--1.禁用外來鍵約束和觸發器
######## disable foreign&trigger constraint ##########
sqlplus ecc_view/ecc@devdb1 @/expdata/syn_script/disable_constraint1.sql
sqlplus ecc_view/ecc@devdb1 @/expdata/syn_script/disable_constraintc.sql
--2.truncate table
########syn tables##########
sqlplus ecc_view/ecc@devdb1 @/expdata/syn_script/trunc1_exe1.sql
sqlplus ecc_view/ecc@devdb1 @/expdata/syn_script/trunc1_exec.sql
--3.imp 資料,ignore=y
########imp data##########
imp ecc_view/ecc@devdb1 file=/expdata/exp-tmp/ecc_view1.dmp parfile=/expdata/syn_script/table1.par log=/expdata/exp-tmp/ecc_view1.log ignore=y grants=n buffer=9999999
--4.重新編譯儲存過程
########recompile procedure##########
sqlplus ecc_view/ecc@devdb1 @/expdata/syn_script/execompile1.sql
sqlplus ecc_view/ecc@devdb1 @/expdata/syn_script/execompilec.sql
--5.啟用外來鍵約束和觸發器
######## enable foreign&trigger constraint ##########
sqlplus ecc_view/ecc@devdb1 @/expdata/syn_script/enable_constraint1.sql
sqlplus ecc_view/ecc@devdb1 @/expdata/syn_script/enable_constraintc.sql
二、附加指令碼:
1.disable_constraint1.sql
set linesize 1024
set pagesize 1024
set feedback off
set termout off
set heading off
spool /expdata/syn_script/disable_constraintc.sql
select ' alter table '||a.table_name||' disable constraint '||constraint_name||';' from user_constraints a where a.constraint_type = 'R';
select ' ALTER TRIGGER '||a.trigger_name||' DISABLE ;' from user_triggers a ;
select 'exit' from dual;
spool off
exit
2.trunc1_exe1.sql
set linesize 1024
set pagesize 1024
set feedback off
set termout off
set heading off
spool /expdata/syn_script/trunc1_exec.sql
select 'truncate table cpfbos.'||table_name||';' from user_tables where table_name ;
select 'exit' from dual;
spool off
exit
3.execompile1.sql
set linesize 1024
set pagesize 1024
set feedback off
set termout off
set heading off
spool /expdata/syn_script/execompilec.sql
select 'ALTER '||A.OBJECT_TYPE||' '||A.OBJECT_NAME||' COMPILE ;' from user_objects a where A.status <> 'VALID' and a.object_type = 'PROCEDURE' ORDER BY A.OBJECT_TYPE DESC;
select 'exit' from dual;
spool off
exit
4.enable_constraint1.sql
set linesize 1024
set pagesize 1024
set feedback off
set termout off
set heading off
spool /expdata/syn_script/enable_constraintc.sql
select ' alter table '||a.table_name||' enable constraint '||constraint_name||';' from user_constraints a where a.constraint_type = 'R';
select ' ALTER TRIGGER '||a.trigger_name||' ENABLE ;' from user_triggers a;
select 'exit' from dual;
spool off
exit
5.匯出線上sequence指令碼
select
'create sequence schema_name.'|| SEQUENCE_NAME || ' minvalue '||MIN_VALUE||' maxvalue '||MAX_VALUE||' start with '||LAST_NUMBER||' increment by '||INCREMENT_BY||' cache '||CACHE_SIZE||' ;'
from dba_sequences where SEQUENCE_OWNER='&your_schema_name';
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9252210/viewspace-607455/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 生產環境備份shell指令碼薦指令碼
- shell指令碼的執行環境變數指令碼變數
- 資料庫環境中的shell指令碼應用資料庫指令碼
- shell 指令碼常用 oracle 環境變數set 設定指令碼Oracle變數
- impala-shell指令碼python環境缺少依賴包指令碼Python
- springboot打包不同環境配置與shell指令碼部署Spring Boot指令碼
- [PY3]——環境配置(1)——pyenv | pip | ipython | jupyter(含安裝pyenv環境shell指令碼)Python指令碼
- 一鍵RAC環境配置指令碼指令碼
- 一個shell 指令碼用來同步表用的指令碼
- shell指令碼指令碼
- [Shell] Shell 生成 HTML指令碼HTML指令碼
- vue 構建環境切換指令碼Vue指令碼
- AIX環境下監控程式指令碼AI指令碼
- 環境變數{Linux環境(也稱為Shell環境)}(轉)變數Linux
- shell指令碼(二)指令碼
- shell指令碼心得指令碼
- shell指令碼案例指令碼
- 常用shell指令碼指令碼
- 巧用shell指令碼生成快捷指令碼指令碼
- 升級Shell工作環境
- Shell配置環境變數變數
- Linux的shell環境Linux
- shell指令碼-透過lftp同步遠端目錄到本地指令碼FTP
- shell指令碼(6)-shell陣列指令碼陣列
- Oracle安裝前的環境配置指令碼Oracle指令碼
- Oracle生產環境RMAN備份指令碼Oracle指令碼
- Windows環境PgSql自動備份指令碼WindowsSQL指令碼
- AIX Shell環境設定(轉)AI
- 如何加密shell指令碼加密指令碼
- 初識shell指令碼指令碼
- 執行shell指令碼指令碼
- Shell 指令碼語句指令碼
- shell 指令碼加密 | shc指令碼加密
- Linux Shell指令碼Linux指令碼
- shell指令碼例項指令碼
- 【指令碼】shell語法指令碼
- shell指令碼舉例指令碼
- Shell指令碼基礎指令碼