python 连接 Oracle 19C 是用oracledb 还是 cx_Oracle
时间: 2023-12-21 08:27:17 浏览: 43
Python连接Oracle 19c数据库,可以使用oracledb和cx_Oracle两个库。这两个库都可以实现Python与Oracle数据库之间的连接和数据操作。
oracledb是Oracle官方提供的Python库,它支持异步IO、数据加密、连接池等功能,提供了一些高级功能,但它只支持Python 3.5及更高版本。而cx_Oracle是第三方库,也是最常用的Python连接Oracle数据库的库之一,它功能强大,支持所有Python版本,具有稳定性和可靠性。
因此,您可以根据自己的需求选择使用oracledb或cx_Oracle库来连接Oracle 19c数据库。
相关问题
oracle 19c pdb搭建adg,ORACLE_19C_ADG搭建
要在Oracle 19c中搭建ADG(Active Data Guard),需要执行以下步骤:
1. 在主数据库上启用归档模式:
```
SQL> ALTER DATABASE ARCHIVELOG;
```
2. 创建一个备用数据库的实例:
```
$ export ORACLE_SID=ORACLE_19C_ADG
$ sqlplus / as sysdba
SQL> CREATE SPFILE FROM PFILE;
```
3. 将主数据库的备份复制到备用服务器上,并在备用服务器上还原备份:
```
$ scp /backup/maindb/* oracle@adg_server:/backup/adg/
$ cd /backup/adg/
$ unzip maindb_backup.zip
$ export ORACLE_SID=ORACLE_19C_ADG
$ rman target /
RMAN> DUPLICATE DATABASE FOR STANDBY FROM ACTIVE DATABASE
SPFILE
SET db_unique_name='ORACLE_19C_ADG'
SET LOG_ARCHIVE_DEST_2='SERVICE=ORACLE_19C ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORACLE_19C'
SET fal_client='ORACLE_19C'
SET fal_server='ORACLE_19C_ADG'
NOFILENAMECHECK;
```
4. 配置主数据库的tnsnames.ora文件和备用数据库的tnsnames.ora文件,以便它们互相访问。
5. 在主数据库上创建一个log shipping连接,并将日志传输到备用数据库:
```
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=ORACLE_19C_ADG ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORACLE_19C_ADG' SCOPE=BOTH;
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE SCOPE=BOTH;
```
6. 在备用数据库上启用日志应用:
```
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
```
完成上述步骤后,ADG就已经搭建完成了。可以使用以下命令检查ADG的状态:
```
SQL> SELECT DATABASE_ROLE FROM V$DATABASE;
```
如果返回的结果为“PHYSICAL STANDBY”,则表示ADG已经成功搭建。
oracle10g使用db_link导入oracle19c
要在Oracle10g中使用db_link将数据导入到Oracle19c,可以使用以下步骤:
1. 在Oracle19c中创建一个数据库链接,例如:
```
CREATE DATABASE LINK link_name CONNECT TO username IDENTIFIED BY password USING 'TNS_alias';
```
其中,link_name是链接的名称,username和password是在Oracle19c中的用户名和密码,TNS_alias是Oracle19c数据库的TNS名称。
2. 在Oracle10g中使用Oracle19c数据库链接,并将数据导入到Oracle19c中,例如:
```
INSERT INTO table_name@link_name SELECT * FROM table_name;
```
其中,table_name是要导入的表的名称,link_name是Oracle19c数据库链接的名称。
如果要使用带有WHERE子句的SELECT语句,可以在Oracle10g中使用以下语法:
```
INSERT INTO table_name@link_name SELECT * FROM table_name WHERE condition;
```
其中,condition是WHERE子句的条件。
请注意,这只是一个概述,具体步骤可能因情况而异。在执行此操作之前,请务必备份您的数据。