Rumah pangkalan data tutorial mysql oracle Control Files 杂谈

oracle Control Files 杂谈

Jun 07, 2016 pm 03:37 PM
control files oracle

最近在群里,看到很多群友都是控制文件出问题了,所以今天我想说一下Control Files的特性。 Control Files 的特性如下 Control Files是声明在数据库属性文件(SPFILE|PFILE)里面的,每次数据库启动的时候,都会读取第一个控制文件的,但是如果 Control Files有

       最近在群里,看到很多群友都是控制文件出问题了,所以今天我想说一下Control Files的特性。

     Control Files的特性如下

     Control Files是声明在数据库属性文件(SPFILE|PFILE)里面的,每次数据库启动的时候,都会读取第一个控制文件的,但是如果 Control Files有改变的话,会同时写入所有声明的控制文件。如果所有声明的控制文件有一个坏了,那么数据库也mount不了。如果你物理上面删除一个 Control Files文件,数据库可能不会马上报错,只有在数据库需要写入 Control Files文件的时候,才会报错。

[oracle@localhost ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Sat May 31 10:07:29 2014

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


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

SQL> show parameter control_files

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_files                        string      /u01/app/oracle/oradata/PROD/c
                                                 ontrol01.ctl, /u01/app/oracle/
                                                 oradata/PROD/control02.ctl
SQL> 
Salin selepas log masuk
      这里面有2个控制文件,一般都是3个放在不同硬盘上面。

      我们大家都知道,一般数据库之间各个文件之间的SCN号不一致的时候,要恢复的,那么怎么看呢。

oracle Control Files 杂谈

    这张图就说明了,控制文件的SCN号与数据文件SCN不同时候,数据库的反应。去哪里看相应的SCN号呢?

SQL> desc v$datafile;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 FILE#                                              NUMBER
 CREATION_CHANGE#                                   NUMBER
 CREATION_TIME                                      DATE
 TS#                                                NUMBER
 RFILE#                                             NUMBER
 STATUS                                             VARCHAR2(7)
 ENABLED                                            VARCHAR2(10)
 CHECKPOINT_CHANGE#                                 NUMBER
 CHECKPOINT_TIME                                    DATE
 UNRECOVERABLE_CHANGE#                              NUMBER
 UNRECOVERABLE_TIME                                 DATE
 LAST_CHANGE#                                       NUMBER
 LAST_TIME                                          DATE
 OFFLINE_CHANGE#                                    NUMBER
 ONLINE_CHANGE#                                     NUMBER
 ONLINE_TIME                                        DATE
 BYTES                                              NUMBER
 BLOCKS                                             NUMBER
 CREATE_BYTES                                       NUMBER
 BLOCK_SIZE                                         NUMBER
 NAME                                               VARCHAR2(513)
 PLUGGED_IN                                         NUMBER
 BLOCK1_OFFSET                                      NUMBER
 AUX_NAME                                           VARCHAR2(513)
 FIRST_NONLOGGED_SCN                                NUMBER
 FIRST_NONLOGGED_TIME                               DATE
 FOREIGN_DBID                                       NUMBER
 FOREIGN_CREATION_CHANGE#                           NUMBER
 FOREIGN_CREATION_TIME                              DATE
 PLUGGED_READONLY                                   VARCHAR2(3)
 PLUGIN_CHANGE#                                     NUMBER
 PLUGIN_RESETLOGS_CHANGE#                           NUMBER
 PLUGIN_RESETLOGS_TIME                              DATE

SQL> select FILE# ,CHECKPOINT_CHANGE# from v$datafile;

     FILE# CHECKPOINT_CHANGE#
---------- ------------------
         1            1210981
         2            1210981
         3            1210981
         4            1210981
         5            1210981

SQL> 
SQL> desc v$datafile_header;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 FILE#                                              NUMBER
 STATUS                                             VARCHAR2(7)
 ERROR                                              VARCHAR2(18)
 FORMAT                                             NUMBER
 RECOVER                                            VARCHAR2(3)
 FUZZY                                              VARCHAR2(3)
 CREATION_CHANGE#                                   NUMBER
 CREATION_TIME                                      DATE
 TABLESPACE_NAME                                    VARCHAR2(30)
 TS#                                                NUMBER
 RFILE#                                             NUMBER
 RESETLOGS_CHANGE#                                  NUMBER
 RESETLOGS_TIME                                     DATE
 CHECKPOINT_CHANGE#                                 NUMBER
 CHECKPOINT_TIME                                    DATE
 CHECKPOINT_COUNT                                   NUMBER
 BYTES                                              NUMBER
 BLOCKS                                             NUMBER
 NAME                                               VARCHAR2(513)
 SPACE_HEADER                                       VARCHAR2(40)
 LAST_DEALLOC_CHANGE#                               VARCHAR2(16)
 UNDO_OPT_CURRENT_CHANGE#                           VARCHAR2(40)

SQL> select FILE# ,CHECKPOINT_CHANGE# from v$datafile_header;

     FILE# CHECKPOINT_CHANGE#
---------- ------------------
         1            1210981
         2            1210981
         3            1210981
         4            1210981
         5            1210981

SQL> 
Salin selepas log masuk

    v$datafile:从控制文件里面查询的SCN

  v$datafile_header:从数据文件里面查询的SCN


 看来控制文件是很重要的啊,那么怎么备份控制文件呢。

SQL> alter database backup controlfile to '/home/oracle/controlfile.bkp'; #备份出一个二进制的文件,可以直接使用

Database altered.

SQL> 
SQL> alter database backup controlfile to trace as '/home/oracle/controlfile.txt'; #备份出一个文本文件里面有SQL脚本

Database altered.
Salin selepas log masuk
    备份的方式当然还有rman命令啊
[root@localhost ~]# su - oracle
[oracle@localhost ~]$ ls
controlfile.bkp  controlfile.txt  database  my.txt  sql.html
[oracle@localhost ~]$ 
[oracle@localhost ~]$ ll
total 9576
-rw-r----- 1 oracle oinstall 9748480 May 31 10:19 controlfile.bkp --刚才二进制方式的备份文件
-rw-r--r-- 1 oracle oinstall    5816 May 31 10:20 controlfile.txt --备份的带文本文件,以后说明怎么用
drwxr-xr-x 7 oracle oinstall    4096 Aug 27  2013 database
-rw-r--r-- 1 oracle oinstall   10134 Jan 18 20:58 my.txt
-rw-r--r-- 1 oracle oinstall   14731 Jan 18 21:00 sql.html
[oracle@localhost ~]$ 
[oracle@localhost ~]$ cd /u01/app/oracle/oradata/PROD/
[oracle@localhost PROD]$ ll
total 1949180
-rw-r----- 1 oracle oinstall   9748480 May 31 10:22 control01.ctl  --这个是数据库里面正在使用的控制文件,大小和<span style="font-family: Arial, Helvetica, sans-serif;">二进制方式的备份文件一样</span>
-rw-r----- 1 oracle oinstall   9748480 May 31 10:22 control02.ctl
-rw-r----- 1 oracle oinstall 362422272 May 31 10:06 example01.dbf
-rw-r----- 1 oracle oinstall  52429312 May 31 10:06 redo01.log
-rw-r----- 1 oracle oinstall  52429312 May 31 10:06 redo02.log
-rw-r----- 1 oracle oinstall  52429312 May 31 10:21 redo03.log
-rw-r----- 1 oracle oinstall 534781952 May 31 10:17 sysaux01.dbf
-rw-r----- 1 oracle oinstall 807411712 May 31 10:12 system01.dbf
-rw-r----- 1 oracle oinstall  20979712 Feb  6 09:31 temp01.dbf
-rw-r----- 1 oracle oinstall  52436992 May 31 10:17 undotbs01.dbf
-rw-r----- 1 oracle oinstall  57679872 May 31 10:06 users01.dbf
[oracle@localhost PROD]$ 
[oracle@localhost PROD]$ 
Salin selepas log masuk

      那么什么时候我们要备份控制文件呢?就一个原则,控制文件变化了,我们需要备份了,一般下面命令出现的时候,建议大家备份

oracle Control Files 杂谈

    看来以后控制文件要好好的看着啊。



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

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

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)

Apa yang perlu dilakukan sekiranya oracle tidak dapat dibuka Apa yang perlu dilakukan sekiranya oracle tidak dapat dibuka Apr 11, 2025 pm 10:06 PM

Penyelesaian kepada Oracle tidak boleh dibuka termasuk: 1. Mulakan perkhidmatan pangkalan data; 2. Mulakan pendengar; 3. Periksa konflik pelabuhan; 4. Menetapkan pembolehubah persekitaran dengan betul; 5. Pastikan perisian firewall atau antivirus tidak menghalang sambungan; 6. Periksa sama ada pelayan ditutup; 7. Gunakan RMAN untuk memulihkan fail rasuah; 8. Periksa sama ada nama perkhidmatan TNS betul; 9. Periksa sambungan rangkaian; 10. Pasang semula perisian Oracle.

Cara menyelesaikan masalah penutup kursor oracle Cara menyelesaikan masalah penutup kursor oracle Apr 11, 2025 pm 10:18 PM

Kaedah untuk menyelesaikan masalah penutupan kursor Oracle termasuk: secara eksplisit menutup kursor menggunakan pernyataan Tutup. Mengisytiharkan kursor dalam klausa kemas kini supaya ia ditutup secara automatik selepas skop berakhir. Mengisytiharkan kursor dalam klausa menggunakan supaya ia secara automatik ditutup apabila pembolehubah PL/SQL yang berkaitan ditutup. Gunakan pengendalian pengecualian untuk memastikan kursor ditutup dalam keadaan pengecualian. Gunakan kolam sambungan untuk menutup kursor secara automatik. Lumpuhkan penyerahan automatik dan penangguhan kursor kelewatan.

Cara memadam semua data dari oracle Cara memadam semua data dari oracle Apr 11, 2025 pm 08:36 PM

Memadam semua data dalam Oracle memerlukan langkah -langkah berikut: 1. Mewujudkan sambungan; 2. Lumpuhkan kekangan utama asing; 3. Padam data jadual; 4. Mengemukakan transaksi; 5. Membolehkan kekangan utama asing (pilihan). Pastikan untuk menyokong pangkalan data sebelum pelaksanaan untuk mengelakkan kehilangan data.

Cara menunaikan pangkalan data oracle Cara menunaikan pangkalan data oracle Apr 11, 2025 pm 08:42 PM

Oracle Database Paging menggunakan rownum pseudo-columns atau mengambil pernyataan untuk melaksanakan: Rownum pseudo-columns digunakan untuk menapis hasil mengikut nombor baris dan sesuai untuk pertanyaan kompleks. Pernyataan Fetch digunakan untuk mendapatkan bilangan baris pertama yang ditentukan dan sesuai untuk pertanyaan mudah.

Cara membuat kursor di Oracle Loop Cara membuat kursor di Oracle Loop Apr 12, 2025 am 06:18 AM

Di Oracle, gelung gelung boleh membuat kursor secara dinamik. Langkah -langkahnya ialah: 1. Tentukan jenis kursor; 2. Buat gelung; 3. Buat kursor secara dinamik; 4. Melaksanakan kursor; 5. Tutup kursor. Contoh: Kursor boleh dibuat kitaran demi litar untuk memaparkan nama dan gaji 10 pekerja teratas.

Cara Menghentikan Pangkalan Data Oracle Cara Menghentikan Pangkalan Data Oracle Apr 12, 2025 am 06:12 AM

Untuk menghentikan pangkalan data Oracle, lakukan langkah -langkah berikut: 1. Sambungkan ke pangkalan data; 2. Shutdown segera; 3. Shutdown membatalkan sepenuhnya.

Cara membuat Oracle Dynamic SQL Cara membuat Oracle Dynamic SQL Apr 12, 2025 am 06:06 AM

Kenyataan SQL boleh dibuat dan dilaksanakan berdasarkan input runtime dengan menggunakan SQL dinamik Oracle. Langkah -langkah termasuk: menyediakan pemboleh ubah rentetan kosong untuk menyimpan penyataan SQL yang dihasilkan secara dinamik. Gunakan pernyataan melaksanakan segera atau sediakan untuk menyusun dan melaksanakan pernyataan SQL dinamik. Gunakan pembolehubah bind untuk lulus input pengguna atau nilai dinamik lain ke SQL dinamik. Gunakan melaksanakan segera atau laksanakan untuk melaksanakan pernyataan SQL yang dinamik.

Langkah -langkah apa yang diperlukan untuk mengkonfigurasi CentOS dalam HDFS Langkah -langkah apa yang diperlukan untuk mengkonfigurasi CentOS dalam HDFS Apr 14, 2025 pm 06:42 PM

Membina Sistem Fail Teragih Hadoop (HDFS) pada sistem CentOS memerlukan pelbagai langkah. Artikel ini menyediakan panduan konfigurasi ringkas. 1. Sediakan untuk memasang JDK pada peringkat awal: Pasang JavadevelopmentKit (JDK) pada semua nod, dan versi mesti bersesuaian dengan Hadoop. Pakej pemasangan boleh dimuat turun dari laman web rasmi Oracle. Konfigurasi Pembolehubah Alam Sekitar: Edit /etc /Fail Profil, tetapkan pembolehubah persekitaran Java dan Hadoop, supaya sistem dapat mencari laluan pemasangan JDK dan Hadoop. 2. Konfigurasi Keselamatan: Log masuk tanpa kata laluan SSH untuk menjana kunci SSH: Gunakan perintah ssh-keygen pada setiap nod

See all articles