ORA-00245 错误解决
从oracle 11.2.0.2.0开始,控制文件的快照文件必须能够被所有节点的数据实例访问到,并且必须放在共享的位置。否则,使用RMAN进行
今天看A类和B类的數據庫的日誌裏面都出現了如下錯誤:
節點1日誌:
Tue Jul 31 03:02:50 2012
Errors in file/soft/Oracle/diag/rdbms/a1qzdb/a1qzdb1/trace/a1qzdb1_ora_5374100.trc:
ORA-00245: control file backup operation failed
Tue Jul 31 09:08:37 2012
Thread 1 advanced to log sequence 346 (LGWRswitch)
Current log# 1 seq# 346 mem# 0:+DATA/a1qzdb/onlinelog/group_1.259.786961989
Tue Jul 31 09:08:37 2012
LNS: Standby redo logfile selected forthread 1 sequence 346 for destination LOG_ARCHIVE_DEST_2
Tue Jul 31 09:08:40 2012
Archived Log entry 1132 added for thread 1sequence 345 ID 0x1f7e84e dest 1:
Tue Jul 31 09:27:34 2012
Control file backup creation failed.
Backup target file size found to be zero.
Errors in file/soft/oracle/diag/rdbms/a1qzdb/a1qzdb1/trace/a1qzdb1_arc2_15073292.trc:
ORA-27037: unable to obtain file status
IBM AIX RISC System/6000 Error: 2: No such file or directory
Additional information: 3
節點2日誌:
Tue Jul 31 03:02:50 2012
Control file backup creation failed.
Backup target file size found to be zero.
Errors in file/soft/oracle/diag/rdbms/a1qzdb/a1qzdb2/trace/a1qzdb2_ckpt_7602620.trc:
ORA-27037: unable to obtain file status
IBM AIX RISC System/6000 Error: 2: No suchfile or directory
Additional information: 3
Tue Jul 31 09:16:27 2012
Thread 2 advanced to log sequence 284 (LGWRswitch)
Current log# 6 seq# 284 mem# 0:+DATA/a1qzdb/onlinelog/group_6.275.786964219
Tue Jul 31 09:16:27 2012
LNS: Standby redo logfile selected forthread 2 sequence 284 for destination LOG_ARCHIVE_DEST_2
Tue Jul 31 09:16:30 2012
Archived Log entry 1134 added for thread 2sequence 283 ID 0x1f7e84e dest 1:
Tue Jul 31 09:27:29 2012
Expanded controlfile section 19 from 818 to1636 records
Requested to grow by 818 records; added 2blocks of records
Tue Jul 31 09:27:34 2012
Errors in file/soft/oracle/diag/rdbms/a1qzdb/a1qzdb2/trace/a1qzdb2_ora_15204484.trc:
ORA-00245: control file backup operation failed
相應的trace日誌:
/soft/oracle/diag/rdbms/a1qzdb/a1qzdb1/trace/a1qzdb1_ora_5374100.trc:
*** 2012-07-31 03:02:50.674
*** SESSION ID:(541.7217) 2012-07-3103:02:50.675
*** CLIENT ID:() 2012-07-31 03:02:50.675
*** SERVICE NAME:(SYS$USERS) 2012-07-3103:02:50.675
*** MODULE NAME:(rman@qza1db1 (TNS V1-V3))2012-07-31 03:02:50.675
*** ACTION NAME:(0000011 STARTED114)2012-07-31 03:02:50.675
/soft/oracle/diag/rdbms/a1qzdb/a1qzdb1/trace/a1qzdb1_arc2_15073292.trc:
ORA-00245: control file backup operationfailed
*** 2012-07-31 09:27:34.107
IBM AIX RISC System/6000 Error: 2: No suchfile or directory
Additional information: 3
/soft/oracle/diag/rdbms/a1qzdb/a1qzdb2/trace/a1qzdb2_ckpt_7602620.trc:
*** 2012-07-31 09:27:34.382
*** SESSION ID:(885.58917) 2012-07-3109:27:34.383
*** CLIENT ID:() 2012-07-31 09:27:34.383
*** SERVICE NAME:(SYS$USERS) 2012-07-3109:27:34.383
*** MODULE NAME:(rman@qza1db2 (TNS V1-V3))2012-07-31 09:27:34.383
*** ACTION NAME:(0000021 STARTED114)2012-07-31 09:27:34.383
ORA-00245: control file backup operationfailed
/soft/oracle/diag/rdbms/a1qzdb/a1qzdb2/trace/a1qzdb2_ora_15204484.trc:
*** 2012-07-31 03:02:50.508
IBM AIX RISC System/6000 Error: 2: No suchfile or directory
Additional information: 3
Google了一下,發現這是Oracle11.2.0.2.0以後的一個“特性”:
从oracle 11.2.0.2.0开始,控制文件的快照文件必须能够被所有节点的数据实例访问到,并且必须放在共享的位置。否则,使用RMAN进行备份控制文件的时候会报如下错误:
ORA-00245: control file backup operationfailed。
当使用备份脚本备份的时候,,这个错误可能会导致备份工作中断。
METALINK 中的两篇文档:
RAC BACKUP FAILS WITH ORA-00245: CONTROLFILE BACKUP OPERATION FAILED [ID1268725.1]【這篇文字沒找到】
RMAN Snapshot Controlfile Must Reside onShared Device for RAC database in 11G [ID 1263621.1]【這篇文字沒找到】
解释并解决了此问题!摘要如下:
"RMAN creates a copy of the controlfile for read consistency, this is the snapshot controlfile. Due to the changesmade to the controlfile backup mechanism in 11gR2 any instances in the clustermay write to the snapshot controlfile. Therefore, the snapshot controlfile fileneeds to be visible to all instances.
The same happens when a backup of thecontrolfile is created directly from sqlplus any instance in the cluster maywrite to the backup controfile file.
In 11gR2 onwards, the controlfile backuphappens without holding the control file enqueue. For non-RAC database, thisdoesn't change anything.
But, for RAC database, the snapshotcontrolfile location must be in a shared file system that will be accessible fromall the nodes."
当前的控制文件配置:
RMAN> show all;
using target database control file insteadof recovery catalog
RMAN configuration parameters for databasewith db_unique_name OSDB are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1;# default
CONFIGURE BACKUP OPTIMIZATION OFF; #default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; #default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; #default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FORDEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICETYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FORDEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; #default
CONFIGURE ENCRYPTION FOR DATABASE OFF; #default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; #default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' ASOF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE ARCHIVELOG DELETION POLICY TONONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO'/soft/product/11.2.0.2/dbh/dbs/snapcf_osdb1.f'; # default
由於我們使用的是ASM,所以可以使用如下配置解决此问题,也可以把ASM替換成共享目錄:
RMAN> CONFIGURE SNAPSHOT CONTROLFILE NAME TO'+SFRA/sncforcl_osdb.ora';
new RMAN configuration parameters:
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+SFRA/sncforcl_osdb.ora';
new RMAN configuration parameters aresuccessfully stored
RMAN> show all;
RMAN configuration parameters for databasewith db_unique_name OSDB are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1;# default
CONFIGURE BACKUP OPTIMIZATION OFF; #default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; #default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; #default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FORDEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICETYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FORDEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; #default
CONFIGURE ENCRYPTION FOR DATABASE OFF; #default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; #default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' ASOF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE ARCHIVELOG DELETION POLICY TONONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+SFRA/sncforcl_osdb.ora';
附件:
In RAC environment from 11.2 onwards Backup Or Snapshot controlfile needs to be in shared location [ID 1472171.1]

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Die Go-Sprache ist eine effiziente, prägnante und leicht zu erlernende Programmiersprache. Sie wird von Entwicklern aufgrund ihrer Vorteile bei der gleichzeitigen Programmierung und Netzwerkprogrammierung bevorzugt. In der tatsächlichen Entwicklung sind Datenbankoperationen ein unverzichtbarer Bestandteil. In diesem Artikel wird erläutert, wie die Go-Sprache zum Implementieren von Datenbank-Hinzufügungs-, Lösch-, Änderungs- und Abfrageoperationen verwendet wird. In der Go-Sprache verwenden wir normalerweise Bibliotheken von Drittanbietern, um Datenbanken zu betreiben, z. B. häufig verwendete SQL-Pakete, Gorm usw. Hier nehmen wir das SQL-Paket als Beispiel, um vorzustellen, wie die Hinzufügungs-, Lösch-, Änderungs- und Abfragevorgänge der Datenbank implementiert werden. Angenommen, wir verwenden eine MySQL-Datenbank.

Die polymorphe Hibernate-Zuordnung kann geerbte Klassen der Datenbank zuordnen und bietet die folgenden Zuordnungstypen: Joined-Subclass: Erstellen Sie eine separate Tabelle für die Unterklasse, einschließlich aller Spalten der übergeordneten Klasse. Tabelle pro Klasse: Erstellen Sie eine separate Tabelle für Unterklassen, die nur unterklassenspezifische Spalten enthält. Union-Unterklasse: ähnelt der verbundenen Unterklasse, aber die Tabelle der übergeordneten Klasse vereint alle Spalten der Unterklasse.

Apples neueste Versionen der iOS18-, iPadOS18- und macOS Sequoia-Systeme haben der Fotoanwendung eine wichtige Funktion hinzugefügt, die Benutzern dabei helfen soll, aus verschiedenen Gründen verlorene oder beschädigte Fotos und Videos einfach wiederherzustellen. Mit der neuen Funktion wird im Abschnitt „Extras“ der Fotos-App ein Album mit dem Namen „Wiederhergestellt“ eingeführt, das automatisch angezeigt wird, wenn ein Benutzer Bilder oder Videos auf seinem Gerät hat, die nicht Teil seiner Fotobibliothek sind. Das Aufkommen des Albums „Wiederhergestellt“ bietet eine Lösung für Fotos und Videos, die aufgrund einer Datenbankbeschädigung verloren gehen, die Kameraanwendung nicht korrekt in der Fotobibliothek speichert oder eine Drittanbieteranwendung die Fotobibliothek verwaltet. Benutzer benötigen nur wenige einfache Schritte

HTML kann die Datenbank nicht direkt lesen, dies kann jedoch über JavaScript und AJAX erreicht werden. Zu den Schritten gehören das Herstellen einer Datenbankverbindung, das Senden einer Abfrage, das Verarbeiten der Antwort und das Aktualisieren der Seite. Dieser Artikel bietet ein praktisches Beispiel für die Verwendung von JavaScript, AJAX und PHP zum Lesen von Daten aus einer MySQL-Datenbank und zeigt, wie Abfrageergebnisse dynamisch auf einer HTML-Seite angezeigt werden. In diesem Beispiel wird XMLHttpRequest verwendet, um eine Datenbankverbindung herzustellen, eine Abfrage zu senden und die Antwort zu verarbeiten. Dadurch werden Daten in Seitenelemente gefüllt und die Funktion des HTML-Lesens der Datenbank realisiert.

So verwenden Sie MySQLi zum Herstellen einer Datenbankverbindung in PHP: MySQLi-Erweiterung einbinden (require_once) Verbindungsfunktion erstellen (functionconnect_to_db) Verbindungsfunktion aufrufen ($conn=connect_to_db()) Abfrage ausführen ($result=$conn->query()) Schließen Verbindung ( $conn->close())

Um Datenbankverbindungsfehler in PHP zu behandeln, können Sie die folgenden Schritte ausführen: Verwenden Sie mysqli_connect_errno(), um den Fehlercode abzurufen. Verwenden Sie mysqli_connect_error(), um die Fehlermeldung abzurufen. Durch die Erfassung und Protokollierung dieser Fehlermeldungen können Datenbankverbindungsprobleme leicht identifiziert und behoben werden, wodurch der reibungslose Betrieb Ihrer Anwendung gewährleistet wird.

PHP ist eine Back-End-Programmiersprache, die in der Website-Entwicklung weit verbreitet ist. Sie verfügt über leistungsstarke Datenbankbetriebsfunktionen und wird häufig zur Interaktion mit Datenbanken wie MySQL verwendet. Aufgrund der Komplexität der Kodierung chinesischer Zeichen treten jedoch häufig Probleme beim Umgang mit verstümmelten chinesischen Zeichen in der Datenbank auf. In diesem Artikel werden die Fähigkeiten und Praktiken von PHP beim Umgang mit chinesischen verstümmelten Zeichen in Datenbanken vorgestellt, einschließlich häufiger Ursachen für verstümmelte Zeichen, Lösungen und spezifischer Codebeispiele. Häufige Gründe für verstümmelte Zeichen sind falsche Einstellungen für den Datenbank-Zeichensatz: Beim Erstellen der Datenbank muss der richtige Zeichensatz ausgewählt werden, z. B. utf8 oder u

Durch die Verwendung der Datenbank-Rückruffunktion in Golang kann Folgendes erreicht werden: Ausführen von benutzerdefiniertem Code, nachdem der angegebene Datenbankvorgang abgeschlossen ist. Fügen Sie benutzerdefiniertes Verhalten durch separate Funktionen hinzu, ohne zusätzlichen Code zu schreiben. Rückruffunktionen stehen für Einfüge-, Aktualisierungs-, Lösch- und Abfragevorgänge zur Verfügung. Sie müssen die Funktion sql.Exec, sql.QueryRow oder sql.Query verwenden, um die Rückruffunktion verwenden zu können.
