国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

Oracle Online Redo LogFile

2024-08-29 13:42:56
字體:
來源:轉載
供稿:網友

  Oracle Online Redo LogFile一、 redologfile 的簡單介紹 它一般有大小相同的一組文件構成。我們可以查看數據庫視圖 v$logfile 知道它的個數和存儲位置。 SVRMGRL>select * from v$logfile; 查看數據庫視圖 v$log 知道它當前的狀態。 SVRMGRL>select * from v$log; 一個時間只有一組 logfilegroup 是工作狀態 (current) , redologfile 滿了后會自動切換到下一個 logfilegroup ,假如數據庫是歸檔方式同時寫到歸檔日志文件。這些文件不能用常規的文本編輯器查看 , 它以特定的格式存放 , 只有數據庫或者專門的軟件可以看懂它。 redologfile 的最大數目是在創建數據庫時指明的。假如你想知道當前數據庫 redologfile 的最大數值是多少,重新生成控制文件 , 就可以知道。 SVRMGRL>alter database backup controlfile to trace; 這條語句會在 $ORACLE_BASE/admin/dbname/udump/ 路徑下生成當前時間的一個 *.trc 文件 , 也就是數據庫的控制文件 , 用文本編輯器 , 即可看到數據庫創建時用的一些參數 , 包括 redologfile 的最大數 (maxlogfiles), 每組最大的成員個數 (maxlogmembers) 。 二、 redologfile 的大小和位置對數據庫性能的影響 假如用 ORACLE 的安裝向導創建的典型數據庫 , 它的 redologfile 大小為 500K, 這基本上是不能滿足典型的 OLTP 應用的 , 在數據庫日志文件 (alert_orasid.log) 里會記錄著頻繁的 logswitch 。 ORACLE 推薦 logswitch 時間最好在 15--30 分鐘之間 , 所以 redologfile 的大小由數據庫 DML 操作數據量的大小決定其最佳大小。 redologfile 最好有多個分布在不同硬盤的存儲位置 , 多組成員 , 使數據庫恢復時有更多的選擇。 典型的 OLTP 應用, redologfile 大小可以為 16M 。當然繁忙的數據庫 , 例如當今的門戶網站 , 這個值可以達到 100M 以上 . 假如你發現當前數據庫日志文件里 logswitch 的時間偏大或者偏小,不要緊。 ORACLE 提供了在數據庫聯機狀態來改變 redologfile 大小的方法。 三、在聯機狀態改變 redologfile 大小的方法 假如原來數據庫有 3 個小的 redologfile, 下面是 UNIX 環境下的一個例子 : 第一步 : 往數據庫添加三個大的 redologfile SVRMGRL>ALTERDATABASEADDLOGFILEGROUP4 ('/opt/oradata/app/redo04.log', '/ora_bak/oradata2/redolog/redo04.log')size16Mreuse; SVRMGRL>ALTERDATABASEADDLOGFILEGROUP5 ('/opt/oradata/app/redo05.log', '/ora_bak/oradata2/redolog/redo05.log')size16Mreuse; SVRMGRL>ALTERDATABASEADDLOGFILEGROUP6 ('/opt/oradata/app/redo06.log', '/ora_bak/oradata2/redolog/redo06.log')size16Mreuse; 第二步 : 手工地做 logswitch, 使新建的 redologfile 起作用 . SVRMGRL>altersystemswitchlogfile; 此操作可以執行一到幾次 , 使舊的 redologfile 成 invalid 狀態 . 第三步 : 刪除原來舊的 redologfile. SVRMGRL>alterdatabasedroplogfilegroup1; SVRMGRL>alterdatabasedroplogfilegroup2; SVRMGRL>alterdatabasedroplogfilegroup3; 四、跟 redologfile 有關的其它數據庫參數 1 、 log_buffer log_buffer 是 ORACLESGA 的一部分 , 所有 DML 命令修改的數據塊先放在 log_buffer 里 , 假如滿了或者到了 check_point 時候通過 lgwr 后臺進程寫到 redologfile 里去。
它不能設得太大,這樣在意外發生時會丟失很多改變過的數據。它最好不要大于 512K 或者 128K*CPU 個數。 我們可以用下面的 SQL 語句檢測 log_buffer 使用情況 : SVRMGRL>selectrbar.name,rbar.value,re.name,re.value,(rbar.value*100)/re.value'%'"radio" fromv$sysstatrbar,v$sysstatre whererbar.name='redobufferallocationretries' andre.name='redoentries'; 這個比率小于 1% 才好,否則增加 log_buffer 的大小 2 、 log_checkpoint_interval Oracle8.1 版本后 log_checkpoint_interval 指的是兩次 checkpoint 之間操作系統數據塊的個數。 checkpoint 時 Oracle 把內存里修改過的數據塊用 DBWR 寫到物理文件,用 LGWR 寫到日志和控制文件。 一般 UNIX 操作系統的數據塊為 512bytes 。 從性能優化來說 log_checkpoint_interval=redologfilesizebytes/512bytes 3 、 log_checkpoint_timeout Oracle8.1 版本后 log_checkpoint_timeout 指的是兩次 checkpoint 之間時間秒數。 Oracle 建議不用這個參數來控制,因為事務 (transaction) 大小不是按時間等量分布的。用 log_checkpoint_interval 參數控制會好一些。 禁用此參數或者按默認的 900

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泰和县| 江川县| 灵台县| 东海县| 马鞍山市| 津市市| 申扎县| 临澧县| 巴彦淖尔市| 新乡县| 峨边| 青铜峡市| 白河县| 响水县| 门源| 绩溪县| 柳州市| 裕民县| 鸡泽县| 灌南县| 瑞安市| 青岛市| 潜山县| 平湖市| 宜兰市| 桓台县| 天峻县| 清河县| 黎川县| 西林县| 广东省| 合作市| 昭通市| 肥城市| 溧阳市| 雷州市| 平泉县| 梅州市| 高密市| 图木舒克市| 华池县|