Die Verbindung zu Oracle-DB-shell-Skript mit 'sysdba'
Brauche ich eine Verbindung zu meinem Oracle 11g-DB-shell-Skript mit 'sysdba' - Berechtigungen. Dazu habe ich auf Benutzer wechseln von 'root' zu 'oracle'.
Ich habe versucht, die folgenden, jedoch ohne Erfolg.
su - oracle -c "<< EOF1
sqlplus -s "/ as sysdba" << EOF2
whenever sqlerror exit sql.sqlcode;
set echo off
set heading off
shutdown immediate
startup mount
alter database archivelog;
alter database open;
exit;
EOF2
EOF1"
Bin ich immer die folgende Fehlermeldung.
[root@vEMS-23 devel]# ./enableArchiveLogs.sh de FEHLER: ORA-01031:
Unzureichende RechteSP2-0306: Ungültige option. Verwendung: CONN[ECT] [Anmeldung] [ALS
{SYSDBA|SYSOPER|SYSASM}] wobei ::=
[/][@] [Ausgabe=Wert] | /
SP2-0306: Ungültige option. Verwendung: CONN[ECT] [Anmeldung] [ALS
{SYSDBA|SYSOPER|SYSASM}] wobei ::=
[/][@] [Ausgabe=Wert] | /
SP2-0157: es konnte keine VERBINDUNG zu ORACLE nach 3 versuchen, beenden
SQL*Plus [root@vEMS-23 devel]#
Soweit ich kann verstehen, dass es nicht zu authentifizieren, wie 'sysdba'. Es nicht Auftritt, wenn ich beseitigen 'su - oracle -c" und " Skript ausführen als oracle-Benutzer zunächst.
Irgendwelche Hinweise?
Ich habe eine Antwort:
Ist die Antwort ziemlich einfach. Ich habe gerade ein bisschen Durcheinander mit der syntax. Im folgenden ist die Arbeits-code:
su - oracle -c 'sqlplus -s /as sysdba <<EOF
whenever sqlerror exit sql.sqlcode;
set echo off
set heading off
shutdown immediate
startup mount
alter database noarchivelog;
alter database open;
exit;
EOF
'
- Welche Art von Fehlermeldung bekommst du?
- Thilo, bitte siehe bearbeiteten post. Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
VERBINDEN chan/testen
WÄHLEN Sie *
VON Studenten;
EXIT;
speichern unter /shell_with_oracledb_test/r_connection2.sql
schreiben eines shell-Datei als
echo "sqlplus /nolog @/shell_with_oracledb_test/r_connection2.sql" | su - oracle
name dieser Datei -> filename.sh
excute filename.sh Datei
Dies ist Beispielcode.