Rumah pangkalan data tutorial mysql Oracle教程:重做日志文件基本维护

Oracle教程:重做日志文件基本维护

Jun 07, 2016 pm 05:13 PM

重做日志文件最重要的用途就是用来恢复数据(其实你也可以用来logminer),它记录着system global area(sga)当中的database bu

重做日志文件最重要的用途就是用来恢复数据(其实你也可以用来logminer),它记录着system global area(sga)当中的database buffer cache(高速缓存区)的所有变更信息,记录到log buffer;不过在某些特殊情况下比如sqlldr direct等直接写入操作例外,这些例外将不会被记录。因此,使用redo log在实例崩溃情况下来恢复尚未写入数据文件的的数据。
针对每个实例,只有一个写进程LGWR;重做日志文件建议至少两个组,每个组至少两个成员文件,同一个组内的成员之间是内容相同的副本拷贝,同组内的成员大小保持一致,当然建议所有的成员大小都一致,为了避免相关的LGWR等待影响数据库性能,一个比较有用的建议是将成员文件在物理磁盘上分散存放。
提到重做日志文件不得不提到重做日志缓存区log buffer,以及一个重要的进程LGWR日志写进程,该进程负责建log buffer的内容写入到redo logfile,具体的触发条件如下:
◆ 当发出commit命令的时候
◆ 当log buffer的空间写满到1/3的时候或者当log buffer的空间写满1MB的记录的时候
◆ 当每3秒钟超时的时候
◆ 当DBWn需要写入数据文件的操作之前的时候
◆ 当切换日志文件的时候
0. 查看日志文件
SELECT group#, sequence#, bytes, members, status  FROM v$log;--组号、序列号、大小、成员数量、状态【UNUSED-从未使用过;CURRENT-当前使用中;ACTIVE-活动的,,进行恢复的使用将会被用到;INACTIVE-非活动的;CLEARING_CURRENT-正在清除当前日志文件中已经关闭的线程;CLEARING-类似的,在执行ALTER DATABASE CLEAR LOGFILE之后将被清空为空日志之后将转化为UNUSED】
select * from v$logfile;--状态【INVALID-该文件不可访问;STALE-该文件内容不完全,比如正在添加一个文件成员;DELETED-该文件不再被使用;空白-正在使用】
SELECT groups, current_group#, sequence# FROM v$thread;--组数量、当前组、序列号
1. 查看log buffer
show parameter log_buffer
伴随着重做日志而来的还有一个重要的信息,那就是是否将日志文件进行归档。数据库可以运行在归档模式(archivelog)和非归档模式(noarchivelog)下。
2. 查看归档模式
archive log list;
select log_mode from v$database;
select archiver from v$instance;
3. 归档方式切换
为了简单,这里使用Oracle 10g来演示。
SQL*Plus: Release 10.2.0.5.0 - Production on Tue May 8 15:49:39 2012

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> archive log list;
Database log mode           No Archive Mode
Automatic archival           Disabled
Archive destination           /u01/oracle/10g/arch
Oldest online log sequence     158
Current log sequence           160
--目前未归档,我们要切换为归档,首先设置归档目录
SQL> alter system set log_archive_dest_1='location=/u01/oracle/10g/arch' scope=spfile;

System altered.
--关闭数据库
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
--启动实例mount状态
SQL> startup mount;    
ORACLE instance started.

Total System Global Area 1610612736 bytes
Fixed Size            2096632 bytes
Variable Size          469762568 bytes
Database Buffers     1124073472 bytes
Redo Buffers           14680064 bytes
Database mounted.
--打开归档模式
SQL> alter database archivelog;

Database altered.
--打开数据库
SQL> alter database open;

Database altered.
--检查归档模式
SQL> archive log list;
Database log mode           Archive Mode
Automatic archival           Enabled
Archive destination           /u01/oracle/10g/arch
Oldest online log sequence     158
Next log sequence to archive   160
Current log sequence           160

--手工切换日志文件
SQL> archive log list;
Database log mode           Archive Mode
Automatic archival           Enabled
Archive destination           /u01/oracle/10g/arch
Oldest online log sequence     159
Next log sequence to archive   161
Current log sequence           161
SQL> alter system switch logfile;

System altered.

SQL> archive log list;
Database log mode           Archive Mode
Automatic archival           Enabled
Archive destination           /u01/oracle/10g/arch
Oldest online log sequence     160
Next log sequence to archive   162
Current log sequence           162

SQL> alter system archive log current;

System altered.

SQL> archive log list;
Database log mode           Archive Mode
Automatic archival           Enabled
Archive destination           /u01/oracle/10g/arch
Oldest online log sequence     161
Next log sequence to archive   163
Current log sequence           163


--切换为非归档模式
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.

Total System Global Area 1610612736 bytes
Fixed Size            2096632 bytes
Variable Size          469762568 bytes
Database Buffers     1124073472 bytes
Redo Buffers           14680064 bytes
Database mounted.
SQL> alter database noarchivelog;

Database altered.

SQL> alter database open;

Database altered.

SQL> archive log list;
Database log mode           No Archive Mode
Automatic archival           Disabled
Archive destination           /u01/oracle/10g/arch
Oldest online log sequence     158
Current log sequence           160

linux

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table? Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table? Mar 19, 2025 pm 03:51 PM

Artikel ini membincangkan menggunakan pernyataan jadual Alter MySQL untuk mengubah suai jadual, termasuk menambah/menjatuhkan lajur, menamakan semula jadual/lajur, dan menukar jenis data lajur.

Bagaimana saya mengkonfigurasi penyulitan SSL/TLS untuk sambungan MySQL? Bagaimana saya mengkonfigurasi penyulitan SSL/TLS untuk sambungan MySQL? Mar 18, 2025 pm 12:01 PM

Artikel membincangkan mengkonfigurasi penyulitan SSL/TLS untuk MySQL, termasuk penjanaan sijil dan pengesahan. Isu utama menggunakan implikasi keselamatan sijil yang ditandatangani sendiri. [Kira-kira aksara: 159]

Terangkan keupayaan carian teks penuh InnoDB. Terangkan keupayaan carian teks penuh InnoDB. Apr 02, 2025 pm 06:09 PM

Keupayaan carian teks penuh InnoDB sangat kuat, yang dapat meningkatkan kecekapan pertanyaan pangkalan data dan keupayaan untuk memproses sejumlah besar data teks. 1) InnoDB melaksanakan carian teks penuh melalui pengindeksan terbalik, menyokong pertanyaan carian asas dan maju. 2) Gunakan perlawanan dan terhadap kata kunci untuk mencari, menyokong mod boolean dan carian frasa. 3) Kaedah pengoptimuman termasuk menggunakan teknologi segmentasi perkataan, membina semula indeks dan menyesuaikan saiz cache untuk meningkatkan prestasi dan ketepatan.

Apakah beberapa alat GUI MySQL yang popular (mis., MySQL Workbench, phpmyadmin)? Apakah beberapa alat GUI MySQL yang popular (mis., MySQL Workbench, phpmyadmin)? Mar 21, 2025 pm 06:28 PM

Artikel membincangkan alat MySQL GUI yang popular seperti MySQL Workbench dan PHPMyAdmin, membandingkan ciri dan kesesuaian mereka untuk pemula dan pengguna maju. [159 aksara]

Bagaimana anda mengendalikan dataset besar di MySQL? Bagaimana anda mengendalikan dataset besar di MySQL? Mar 21, 2025 pm 12:15 PM

Artikel membincangkan strategi untuk mengendalikan dataset besar di MySQL, termasuk pembahagian, sharding, pengindeksan, dan pengoptimuman pertanyaan.

Bagaimana anda menjatuhkan jadual di MySQL menggunakan pernyataan jadual drop? Bagaimana anda menjatuhkan jadual di MySQL menggunakan pernyataan jadual drop? Mar 19, 2025 pm 03:52 PM

Artikel ini membincangkan jadual menjatuhkan di MySQL menggunakan pernyataan Jadual Drop, menekankan langkah berjaga -jaga dan risiko. Ia menyoroti bahawa tindakan itu tidak dapat dipulihkan tanpa sandaran, memperincikan kaedah pemulihan dan bahaya persekitaran pengeluaran yang berpotensi.

Bagaimana anda mewakili hubungan menggunakan kunci asing? Bagaimana anda mewakili hubungan menggunakan kunci asing? Mar 19, 2025 pm 03:48 PM

Artikel membincangkan menggunakan kunci asing untuk mewakili hubungan dalam pangkalan data, memberi tumpuan kepada amalan terbaik, integriti data, dan perangkap umum untuk dielakkan.

Bagaimana anda membuat indeks pada lajur JSON? Bagaimana anda membuat indeks pada lajur JSON? Mar 21, 2025 pm 12:13 PM

Artikel ini membincangkan membuat indeks pada lajur JSON dalam pelbagai pangkalan data seperti PostgreSQL, MySQL, dan MongoDB untuk meningkatkan prestasi pertanyaan. Ia menerangkan sintaks dan faedah mengindeks laluan JSON tertentu, dan menyenaraikan sistem pangkalan data yang disokong.

See all articles