oracle之控制檔案
基於伺服器引數檔案(spfile)與初始化引數兩個啟動檔案的不同,所以在為控制檔案建立多工的操作也存在差異,首先,我們介紹下在spfile啟動的情況下,為控制檔案建立多工的操作:
這裡我準備了兩個磁碟:乙個是oracle安裝的磁碟(sda1),另外乙個是已經格式化好的測試的磁碟(sdb1)
在spfile的環境下建立多工的步驟有四步:
1、修改spfile引數檔案裡的內容;2、shutdown 資料庫;3、做物理控制檔案的copy;4、startup資料庫,檢查結果;
sql<alter system set control_files='/mnt/sdb1/opt/oradata/kwen/ctl_01.ctl',
2'/mnt/sdb1/opt/oradata/kwen/ctl_02.ctl',
3'/opt/oracle/oradata/kwen/control_01.ctl',
4'/opt/oracle/oradata/kwen/control_02.ctl',
5'/opt/oracle/oradata/kwen/control_03.ctl'
6scope=spfile;
system altered.
[oracle@localhost kwen]$cp /opt/oracle/oradata/kwen/control_01.ctl /mnt/sdb1/opt/oradata/kwen/ctl_01.ctl
[oracle@localhost kwen]$cp /opt/oracle/oradata/kwen/control_01.ctl /mnt/sdb1/opt/oradata/kwen/ctl_02.ctl
[oracle@localhost kwen]$exit
exit
這樣控制檔案就建立成功了,並且移植到了不同的磁碟上。
一、控制檔案:二進位制檔案定義當前database的狀態,它是連線database和例項的橋梁。如果控制檔案被損壞,系統一定要做requires recovery介質恢復。在mount狀態時讀控制檔案,在資料庫操作時控制檔案也是必須的。在任何時候,控制檔案都應是可用的,控制檔案可以維護database的完整性。通常應做控制檔案的多工。
二、控制檔案所記錄的內容:
sql> startup
sql> set wrap off
sql> set linesize 200
sql> select * from v$database //資料庫名name和id,建立時間
sql> select * from v$tablespace //表空間名
sql> select * from v$logfile //日誌檔案相關資訊和位置
sql> select * from v$log //當前重做日誌檔案的序列號(current)
sql> select * from v$backup //備份資訊
sql> alter tablespace users
begin backup;//當前資料進入備份狀態
sql> select * from v$archived_log; //歸檔日誌檔案
三、控制檔案多工的兩種方式:spfile 和init.ora(多工是為了保證database可以連續的運作)
1.spfile方式:
sql> show parameter spfile //顯示spfile
sql> select * from v$controlfile; //顯示控制檔案
sql> alter system set control_files='d:\oracle\oradata\fox\control01.ctl','d:\oracle\oradata\fox\control02.ctl',
'd:\oracle\oradata\fox\control03.ctl','d:\oracle\oradata\fox\control04.ctl' scope=spfile;
(1)正常關閉資料庫:
sql> shutdown immediate
(2)建立額外的物理檔案(拷貝):control04.ctl
(3)重啟:
sql> conn sys/admin@fox as sysdba
sql> startup //重啟例程。
sql> select * from v$controlfile
2.init.ora 方式(多工控制檔案):
(1)關閉資料庫:
sql> shutdown immediate
(2)拷貝建立乙個額外的物理控制檔案:control04.ctl
$ cp control04.ctl... /disk3/control02.ctl
(3)修改oracle\admin\fox\spfile\init.ora檔案:control_files=...
後插入'd:\oracle\oradata\fox\control04.ctl'
(4)重啟
sql> startup pfile=d:\oracle\ora90\database\initfox.ora
四、使用omf管理控制檔案:
omf控制檔案位於db_create_online_log_dest_n,控制檔案建立時唯一的命名資訊記錄在alertsid.log檔案中。
五、獲取控制檔案相關資訊:
sql> select * from v$controlfile;
sql> select * from v$parameter where name like 'control%';
sql> show parameter control;
sql> select * from v$controlfile_record_section //顯示控制檔案記錄的資訊
sql> show parameters control_files; //列表顯示控制檔案name,status,location
六、如何對正在執行的oracle資料庫做動態備份:
sql> alter database backup controlfile to 'c:\control.bak' //直接備份到備份檔案中
sql> alter database backup controlfile to trace; //備份資訊轉換為建立控制檔案的指令碼資訊檔案
sql> show parameter user_dump 可以查詢建立的該指令碼檔案所在位置。(d:\oracle\admin\fox\udump\..dbf)
python 案例 多工copy檔案
import os import multiprocessing def copy file q,file name,old folder name,new folder name 完成檔案的複製 old f open old folder name file name,rb content old...
多工資料夾複製
高階程式設計技巧 學習筆記 1.1 簡單實現 獲取使用者要複製的資料夾名字 建立乙個新的資料夾 獲取資料夾的所有待拷貝的檔案名字 建立程序池 新增拷貝任務 import multiprocessing import os defcopy file q,file name,old folder nam...
多工 同步
實現多工之間通訊的最簡便的辦法是使用共享的資料結構。雖然共享資料區簡化了任務間的通訊,但是必須保證 每個任務在處理共享資料時的排他性。以避免競爭和資料破壞。共享資源滿足互斥性的一般方法有 1.關中斷,開中斷 2.使用測試並置位指令 3.禁止做任務切換 4.利用訊號量 一.關中斷 開中斷 這估計是最簡...