cx_Oracle has the capability of starting up the database using a privileged connection. This example shows a script that could be run as the ‘oracle’ operating system user who administers a local database installation on Linux. It assumes that the environment variable ORACLE_SID has been set to the SID of the database that should be started:# the connection must be in PRELIM_AUTH mode to perform startupconnection = cx_Oracle.connect("/", mode = cx_Oracle.SYSDBA | cx_Oracle.PRELIM_AUTH)connection.startup()# the following statements must be issued in normal SYSDBA modeconnection = cx_Oracle.connect("/", mode = cx_Oracle.SYSDBA, encoding="UTF-8")cursor = connection.cursor()cursor.execute("alter database mount")cursor.execute("alter database open")
Similarly, cx_Oracle has the ability to shutdown the database using a privileged connection. This example also assumes that the environment variable ORACLE_SID has been set:# need to connect as SYSDBA or SYSOPERconnection = cx_Oracle.connect("/", mode = cx_Oracle.SYSDBA)# first shutdown() call must specify the mode, if DBSHUTDOWN_ABORT is used,# there is no need for any of the other stepsconnection.shutdown(mode = cx_Oracle.DBSHUTDOWN_IMMEDIATE)# now close and dismount the databasecursor = connection.cursor()cursor.execute("alter database close normal")cursor.execute("alter database dismount")# perform the final shutdown callconnection.shutdown(mode = cx_Oracle.DBSHUTDOWN_FINAL)