亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

一個冷備份的自動執行腳本

發布時間:2020-07-18 21:40:19 來源:網絡 閱讀:681 作者:misterfzw 欄目:關系型數據庫

花了一天多時間,搗鼓出一個SQL 腳本,用于執行ORACLE自動冷備份。記錄如下:

set echo off                               --關閉命令回顯,但會顯示執行后的命令。
set serveroutput on                        --返回結果,如果關閉,將無法把結果傳到下一個文件。
set escape on                              --打開轉義符功能,否則遇到/無法進行。
set heading off                            --關閉結果標題行顯示
set line 300                               --設置返回結果顯示寬度,避免遇到結果跨行后sed命令取結果不完整。
ho mkdir $ORACLE_HOME/`date +%Y_%m_%d`     --創建存放備份文件的目錄,以當天日期命名。要保證與下面SQL中目錄一致。
spool  /tmp/bak1.sql
declare                                    --聲明一個變量。用于接收當前日期的值。
v_time varchar2(30);
begin
select to_char(sysdate,'yyyy_mm_dd') into v_time   --獲取當天日期。
from dual;
dbms_output.put_line('select ''ho cp ''\|\|name\|\|'' $ORACLE_HOME\/'||v_time||''' from v$controlfile;');
dbms_output.put_line('select ''ho cp ''\|\|name\|\|'' $ORACLE_HOME\/'||v_time||''' from v$datafile;');
dbms_output.put_line('select ''ho cp ''\|\|member\|\|'' $ORACLE_HOME\/'||v_time||''' from v$logfile;');
dbms_output.put_line('select ''ho cp ''\|\|name\|\|'' $ORACLE_HOME\/'||v_time||''' from v$tempfile;');
dbms_output.put_line('create pfile=''$ORACLE_HOME\/'||v_time||'\/init$ORACLE_SID.ora'' from spfile;');
dbms_output.put_line('ho cp $ORACLE_HOME\/dbs\/orapw$ORACLE_SID $ORACLE_HOME\/'||v_time);
end;
/
spool off
 --以上通過獲取日期后,得到帶有日期值的完整的SQL原始語句和一些結果說明語句。
 --以下獲取純凈的用來執行的原始SQL語句。
ho sed -n '/select/p' /tmp/bak1.sql >/tmp/bak2.sql
ho sed -n '/^create/p' /tmp/bak1.sql >>/tmp/bak2.sql
ho sed -n '/^ho cp/p;' /tmp/bak1.sql >>/tmp/bak2.sql
--以下用來將原始SQL語句執行得到SQLPLUS語句,并備份了參數文件和密碼文件,以及結果說明語句。
spool /tmp/bak3.sql
start /tmp/bak2.sql
spool off
ho sed -n '/^ho cp/p' /tmp/bak3.sql >$ORACLE_HOME/back.sql     --過濾掉無用的結果說明語句。獲取最終有用的SQLPLUS命令。
shutdown immediate                                             --關閉數據庫進行冷備。
start $ORACLE_HOME/back.sql
startup
ho rm /tmp/bak*.sql $ORACLE_HOME/back.sql                      --刪除臨時生成的執行腳本。


說明:1.SQL下獲取當前日期值,并應用到SQLPLUS命令的目錄中是一個難點,折騰了一天。

          2.sed命令可以用sed -i來簡化生成的過渡性sql腳本。

          3.應該可以在SQLPLUS下定義變量并賦予當天日期值,再運用到其他備份命令中,暫時沒搞成功,回頭有時間再研究。

          4.這是為了學習而搞得一個SQL腳本,或許用系統shell腳本來做,會更簡潔有效。下一步再做一個系統shell腳本。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泸州市| 西乌珠穆沁旗| 汉源县| 区。| 晋中市| 稷山县| 柳州市| 卫辉市| 根河市| 惠州市| 阿鲁科尔沁旗| 安顺市| 天台县| 汕头市| 保德县| 乐山市| 遵化市| 栾川县| 绥江县| 顺平县| 桦南县| 将乐县| 大渡口区| 弥勒县| 如皋市| 绍兴县| 莱西市| 兴山县| 台前县| 抚顺市| 锦屏县| 赤壁市| 柯坪县| 霞浦县| 平凉市| 天门市| 应用必备| 榆林市| 桓台县| 陆丰市| 南华县|