搜索
首页数据库Oracle实例解析Oracle容器数据库的安装和使用

本篇文章给大家带来了关于Oracle的相关知识,其中主要整理了容器数据库的安装和使用的相关问题,其中包括了Oracle容器数据库基本知识、容器数据库的安装及使用和容器数据库的创建等等内容,下面一起来看一下,希望对大家有帮助。

实例解析Oracle容器数据库的安装和使用

推荐教程:《Oracle视频教程

Oracle 19c的安装和使用

Oracle容器数据库基本知识

  容器数据库,又称为可插入数据库,又可以称为多租户容器数据库
  Oracle Multitenant Container Database(CDB)
  CDB是Oracle 12C引入的特性,指的是可以容纳一个或者多个可插拔数据库的数据库,这个特性允许在CDB容器数据库中创建并且维护多个数据库,在CDB中创建的数据库被称为PDB,每个PDB在CDB中是相互独立存在的,在单独使用PDB时,与普通数据库无任何区别
  CDB根容器数据库的主要作用就是容纳所有相关的PDB的元数据,以及在CDB中对所有的PDB进行管理。
  即容器被称为CDB,容器里的子数据库被称为PDB。

容器数据库的组成

在这里插入图片描述

2.1.1ROOT

  Root容器数据库,是CDB环境中的根数据库,在根数据库中含有主数据字典视图,其中包含了与Root容器有关的元数据和CDB中所包含的所有的PDB信息。在CDB环境中被标识为CDB$ROOT,每个CDB环境中只能有一个Root容器数据库

2.1.2CDB seed

  CDB seed为PDB的种子,其中提供了数据文件,在CDB环境中被标识为PDBSEED,**是创建新的 PDB的模板**,你可以连接PDB              SEEDPDBPDBSEED,但是不能执行任何事物,因为PDB$SEED是只读的,不可进行修改

2.1.3PDBs

  PDB数据库,在CDB环境中每个PDB都是独立存在的,与传统的Oracle数据库基本无差别,每个PDB拥有自己的数据文件和objects,唯一的区别在于PDB可以插入到CDB中,以及在CDB中拔出,并且在任何一个时间点之上PDB必须拔出或者插入到一个CDB中,当用户链接PDB时不会感觉到根容器和其他PDB的存在。

2.1.4Application Containers

  Oracle在12cR2版本中,对容器功能进行了增强,在CDB root容器中可以还创建一个叫做Application root的容器,可在其内创建多个依赖于Application root的Application PDBs,架构图如下:
在这里插入图片描述
简单地说就是容器里还能创建容器

根环境的用户

  在之前的版本中,单个PDB可以有多个用户,每个用户又可以有自己的表空间,上升到CDB级别,用户被分成了两类:
公用用户和本地用户。

  • 公用用户
    公用用户是在root数据库中和所有的PDB数据库中都存在的用户,公用用户必须在根容器中创建,然后此用户会在所有的现存的PDB中自动创建,公用用户标识必须以c##或者C##开头,sys和system用户是Oracle在CDB环境中自动创建的公用用户。
  • 公用用户
    本地用户指的是在PDB中创建的普通用户,只有在创建它的PDB中才会存在该用户,并且PDB中只能创建本地用户。

另外值得一提的是,PDB中没有以前默认的scott用户了,需要我们重新创建。
还有,通过“sqlplus / as sysdba”登录连接的是CDB。(重点)

容器数据库的安装及使用

安装

记得之前的版本安装时的第四步要取消勾选容器数据库吗
在这里插入图片描述
现在,我们只需勾选上即可创建为容器数据库;

常用命令

在安装好之后,打开sqlplus,用管理员账户登录
sqlplus / as sysdba

查看当前的容器

show con_name;

在这里插入图片描述
可以看到当前是根容器。

查看数据库是否为CDB

select name,cdb,open_mode,con_id from v$database;

在这里插入图片描述
Open_mode是读写权限

查看CDB中的PDB信息

show pdbs;

在这里插入图片描述
可以看到里面是种子和默认的PDB。

启动和关闭已创建好的PDB数据库

先将会话切换至想用的PDB。

alter session set container = orclpdb;

在这里插入图片描述
这里有两套命令
开启:

alter pluggable database pdb1 open;

在这里插入图片描述
关闭:

alter pluggable database pdb1 close;

在这里插入图片描述
传统的shartup与shutdown
开启:

shartup;

在这里插入图片描述
关闭:

shutdown immediate;

在这里插入图片描述
这里给出SHUTDOWN的几个参数及含义

  • shutdown normal:shutdown的默认方式,a.不允许新的数据库连接;b.只有当所有连接都断开后才能关闭,效率较低
  • shutdown immidiate:shutdown的常用方式,a.不允许创建新连接;b.已经创建的连接,如果有未执行完的SQL语句,等待其完成,如果没有立刻断开;c.未提交事务全部回滚
  • shutdown transactional:使用率很低
  • shutdown abort:a.未提交事务不回滚;b.终止所有SQL操作;c.所有连接都断开。数据库关闭迅速,但是下一次开启需要进行实例恢复,启动慢;而且回滚段数据与数据文件可能不一致。

CDB与PDB的切换

alter session set container=ORCLPDB; --PDBalter session set container=CDB$ROOT;--CDBshow con_name   --查看当前容器

通过plsql使用

但是,我们日常使用时是用plsql的,这里与我们平时使用的又有一点区别。

打开PDB

首先,还是用管理员账户登录(此时数据库选项里是没有我们想用的PDB的)
在这里插入图片描述
打开一个命令窗口吗,看一下当前CDB里PDB的信息
在这里插入图片描述
在这里插入图片描述
利用上面刚学的命令,切换会话,打开想用的PDB,自己做哦

创建用户并授权

上面说了,PDB里是没有我们所知道的Scott用户的,这里需要我们重新创建他

create user scott identified by tiger;--给用户授予权限 grant connect,resource,dba to scott; --删除用户drop user truedata scott;

创建表空间,为用户指定表空间及为用户授予权限都与以前的使用方式一样。

配置

想要用plsql登录PDB,我们需要更改一个配置文件
在这里插入图片描述
安装目录下的tnsnames.ora文件,复制里面的ORCL,更改名字即可
在这里插入图片描述
然后用plsql登录即可
在这里插入图片描述
单个PDB的使用,与我们日常所用的数据库并无区别

如果连接可插拔数据库时出现:
ORACLE 正在初始化或关闭。
这个错误,参考我的博客:
链接: PLSQL报ORA-01033: ORACLE正在初始化或关闭的解决方法
或者可能是PDB没打开,参考3.2.4打开即可。

容器数据库的创建

  PDB数据库的创建可以从现存的数据库中复制数据文件,包括种子容器、可插拔数据库、non-CDB数据库,创建时可以使用CREATE PLUGGABLE、RMAN、DBCA以及EM等。
  在12.1版本中在创建PDB时,Source PDB必须处于read only状态,在12.2版本中,因为undo local mode新特性的推出,在创建PDB时,Source PDB在read write状态,依然可以创建。
  另外在12.2版本中Oracle推出了refresh PDB特性,具有对Source PDB进行增量同步的功能。

创建方式

使用CREATE PLUGGABLE命令可以使用以下资源创建PDB:
CDB seed (PDB$SEED)
克隆已经存在的PDB
Local PDB
Remote PDB
non-CDB数据库

	如果把数据库从11g 升级到12c,或者在12c中创建的,就是NON CDB,那么这样的数据库就是普通的单实例,和12c 之前的数据库没有区别

链接: Oracle 12c系列(七)| Non-CDB转换为PDB

拔下的PDB

使用DBCA可以使用以下资源创建PDB:
DBCA也就是我们常用的数据库配置工具、图形化界面
CDB seed (PDB$SEED)
RMAN备份
拔下的PDB
示例:(这里只演示使用create pluggable database命令方式创建PDB)

使用CDB seed创建PDB

在这里插入图片描述

  1. 在SQL*Plus中输入CREATE PLUGGABLE DATABASE语句
    (这里创建为ypdb1的pdb,管理用户为ypdb1)
CREATE PLUGGABLE DATABASE ypdb1 ADMIN USER ypdb1 IDENTIFIED BY oracle
STORAGE (MAXSIZE 2G)DEFAULT TABLESPACE ypdb1
DATAFILE '/u01/app/oracle/oradata/ora12c/ypdb1/ypdb01.dbf' SIZE 100M AUTOEXTEND ONPATH_PREFIX = '/u01/app/oracle/oradata/ora12c/ypdb1/'FILE_NAME_CONVERT = ('/u01/app/oracle/oradata/ora12c/pdbseed', '/u01/app/oracle/oradata/ora12c/ypdb1');

在这里插入图片描述

  1. 语句执行完毕之后查看创建完成的PDB:
sys. ora12c>show pdbs
CON_ID CON_NAME                       OPEN MODE  RESTRICTED---------- ------------------------------ ---------- ----------
 2 PDB$SEED                       READ ONLY  NO
 3 YPDB1                          MOUNTED

克隆已经存在的PDB

这种方式可以通过使用当前CDB中的其他PDB,以及复制远端CDB中的PDB,还可以复制non-CDB数据库创建成PDB。

Clone a Local PDB
在Clone本地PDB时需要注意一下几点:
使用的用户必须拥有’CREATE PLUGGABLE DATABASE’的权限(测试里使用sys用户)
源PDB不可以是关闭状态
如果CDB为shared undo,PDB必须为READ-ONLY状态
如果CDB不是归档模式,那么PDB必须为READ-ONLY状态

	(说明:如果是Oracle Database 版本为12.1,那么PDB只能为READ-ONLY状态,因在12.1中undo模式,还只能选择shared undo。)
sys. ora12c>show pdbs
CON_ID CON_NAME                       OPEN MODE  RESTRICTED---------- ------------------------------ ---------- ----------
 2 PDB$SEED                       READ ONLY  NO
 3 YPDB1                          READ WRITE NOsys. ora12c>

这里使用YPDB1做为源PDB,创建的PDB为YPDB2。
(1) 检查是否为shared undo模式

COL PROPERTY_NAME FOR A30
COL PROPERTY_VALUE FOR A30SELECT property_name, property_valueFROM database_propertiesWHERE property_name='LOCAL_UNDO_ENABLED';PROPERTY_NAME                  PROPERTY_VALUE------------------------------ ------------------------------LOCAL_UNDO_ENABLED             TRUE

(2) 检查是否未archivelog模式

sys. ora12c>ARCHIVE LOG LISTDatabase log mode              Archive ModeAutomatic archival             Enabled
Archive destination            /u01/app/oracle/recovery/ora12c/arch
Oldest online log sequence     21Next log sequence to archive   23Current log sequence           23sys. ora12c>

(3) 创建验证数据

zhaoweiqing. ypdb1>CONN /AS SYSDBA
Connected.sys. ora12c>conn zhaoweiqing/zhaoweiqing@ypdb1Connected.zhaoweiqing. ypdb1>SELECT COUNT(*) FROM t;COUNT(*)----------22198Elapsed: 00:00:00.01zhaoweiqing. ypdb1>

(4) 执行CREATE PLUGGABLE DATABASE语句(这里使用sys用户连接根容器)

CREATE PLUGGABLE DATABASE ypdb2 FROM ypdb1
PATH_PREFIX = '/u01/app/oracle/oradata/ora12c/ypdb2/'FILE_NAME_CONVERT = ('/u01/app/oracle/oradata/ora12c/ypdb1/', '/u01/app/oracle/oradata/ora12c/ypdb2/')SERVICE_NAME_CONVERT = ('ypdb1t','ypdb2t');

(5) 查看创建完成的YPDB2

sys. ora12c>show pdbs
CON_ID CON_NAME                       OPEN MODE  RESTRICTED---------- ------------------------------ ---------- ----------
 2 PDB$SEED                       READ ONLY  NO
 3 YPDB1                          READ WRITE NO
 4 YPDB2                          MOUNTED
sys. ora12c>SELECT pdb_id, pdb_name, con_uid, status, creation_scn, con_id FROM cdb_pdbs;PDB_ID PDB_NAME                CON_UID STATUS     CREATION_SCN     CON_ID---------- -------------------- ---------- ---------- ------------ ----------
 2 PDB$SEED             1453953285 NORMAL              213          2
 3 YPDB1                2376019304 NORMAL           697945          3
 4 YPDB2                3908707960 NEW              707501          4Elapsed: 00:00:00.02sys. ora12c>

(6) 检查数据文件

sys. ora12c>ALTER PLUGGABLE DATABASE YPDB2 OPEN;Pluggable database altered.Elapsed: 00:00:14.02sys. ora12c>SELECT con_id, tablespace_name, file_name FROM cdb_data_files WHERE con_id=4;CON_ID TABLESP FILE_NAME------ ------- ---------------------------------------------------------4 SYSTEM  /u01/app/oracle/oradata/ora12c/ypdb2/system01.dbf4 SYSAUX  /u01/app/oracle/oradata/ora12c/ypdb2/sysaux01.dbf4 DEFTBS  /u01/app/oracle/oradata/ora12c/ypdb2/deftbs01.dbf4 USERTBS /u01/app/oracle/oradata/ora12c/ypdb2/usertbs01.dbf4 UNDO_1  /u01/app/oracle/oradata/ora12c/ypdb2/system01_i1_undo.dbf4 YPDB1   /u01/app/oracle/oradata/ora12c/ypdb2/ypdb01.dbf6 rows selected.Elapsed: 00:00:00.01sys. ora12c>

(7) 检查service_name

sys. ora12c>SELECT service_id, name, network_name, enabled, pdb, con_id FROM cdb_services;SERVICE_ID NAME                NETWORK_NAME         ENA PDB           CON_ID---------- ------------------- -------------------- --- --------- ----------
 1 SYS$BACKGROUND                           NO  CDB$ROOT           1
 2 SYS$USERS                                NO  CDB$ROOT           1
 3 ora12c.linux.com    ora12c.linux.com     NO  CDB$ROOT           1
 6 ypdb1.linux.com     ypdb1.linux.com      NO  YPDB1              3
 1 ypdb1t              ypdb1t               NO  YPDB1              3
 1 ypdb2t              ypdb2t               NO  YPDB2              4
 2 ypdb2.linux.com     ypdb2.linux.com      NO  YPDB2              47 rows selected.Elapsed: 00:00:00.00sys. ora12c>

源PDB中的service_name已经被更改指定的service_name.

(8) 检查验证数据

sys. ora12c>conn zhaoweiqing/zhaoweiqing@ypdb2Connected.zhaoweiqing. ypdb2>SELECT COUNT(*) FROM t;COUNT(*)----------22198Elapsed: 00:00:00.11zhaoweiqing. ypdb2>

克隆远程PDB

在这里插入图片描述
Clone远端PDB时需要注意以下几点:

如果PDB被Clone到的CDB的字符集不是AL32UTF8,那么源与目标字符集必须兼容。

源端与目标端的字节顺序必须相同。

连接的用户在CDB中必须拥有’CREATE PLUGGABLE DATABASE’的权限。

源PDB不可以是关闭状态。

如果远端CDB为shared undo,源PDB必须为READ-ONLY状态。

如果远端CDB不是归档模式,源PDB必须为READ-ONLY状态。

这里测试将win平台ORA12CW中的PDB(ORA12CWPDB)复制到Linux的,目标PDB为PDB2。

(1) 查看源端与目标的字符集

col parameter for a30
col value for a30select * from nls_database_parameters where parameter='NLS_CHARACTERSET'or parameter='NLS_LANGUAGE' or parameter='NLS_NCHAR_CHARACTERSET';```**(2) 查看源端与目标端字节顺序**

```sqlcol platform_name for a40SELECT d.inst_id, t.platform_id, t.platform_name, t.endian_format, d.name FROM v$transportable_platform t, gv$database dWHERE t.platform_name = d.platform_name;

(3) 查看源端归档模式

archive log list

(4) 查看源端undo模式

SELECT property_name, property_valueFROM database_propertiesWHERE property_name='LOCAL_UNDO_ENABLED';

(5) 目标端创建dblink

CREATE DATABASE LINK ora12cw CONNECT TO system IDENTIFIED BY oracle USING 'ORA12CW';

(6) 运行CREATE PLUGGABLE DATABASE语句进行复制PDB

CREATE PLUGGABLE DATABASE pdb2 FROM ORA12CWPDB@ora12cwPATH_PREFIX = '/u01/app/oracle/oradata/ora12cl/pdb2/'FILE_NAME_CONVERT = ('D:\U01\APP\ORACLE\ORADATA\ORA12CW\ORA12CWPDB\', '/u01/app/oracle/oradata/ora12cl/pdb2/');

(7) 创建完成后目标端查看PDB2

sys. ora12cl>show pdbs
CON_ID CON_NAME                       OPEN MODE  RESTRICTED---------- ------------------------------ ---------- ----------
 2 PDB$SEED                       READ ONLY  NO
 4 PDB2                           MOUNTED 5 PDB1                           MOUNTED
sys. ora12cl>SELECT pdb_id, pdb_name, con_uid, status, creation_scn, con_id FROM cdb_pdbs;PDB_ID PDB_NAME                CON_UID STATUS     CREATION_SCN     CON_ID---------- -------------------- ---------- ---------- ------------ ----------
 2 PDB$SEED             3409233005 NORMAL          1408788          2
 4 PDB2                 2218727525 NEW             1824437          4
 5 PDB1                 1058019921 NORMAL          1535445          5Elapsed: 00:00:00.00sys. ora12cl>

(8) 目标查看数据文件

sys. ora12cl>alter pluggable database pdb2 open;Pluggable database altered.Elapsed: 00:00:14.02sys. ora12cl>SELECT con_id, tablespace_name, file_name FROM cdb_data_files WHERE con_id=4;CON_ID TABLESPACE_NAME FILE_NAME------ --------------- --------------------------------------------------4 SYSTEM          /u01/app/oracle/oradata/ora12cl/pdb2/SYSTEM01.DBF4 SYSAUX          /u01/app/oracle/oradata/ora12cl/pdb2/SYSAUX01.DBF4 UNDOTBS1        /u01/app/oracle/oradata/ora12cl/pdb2/UNDOTBS01.DBF4 USERS           /u01/app/oracle/oradata/ora12cl/pdb2/USERS01.DBF
Elapsed: 00:00:00.00sys. ora12cl>

克隆远端的PDB成功。

克隆本地PDB

在克隆已有的PDB或者non CDB时,我们也可以将克隆语句中加入NO DATA子句,在使用NO DATA子句时,仅仅会克隆源PDB中的模型定义,并不会克隆PDB中的数据。(Oracle数据库内自动创建的schemas下的对象会被成功克隆,而用户创建的schemas下的对象仅仅会克隆对象的定义结构)。

测试克隆本地PDB时使用no data子句

这里将WOQUPDB克隆为PDBTEST.

(1)源PDB

sys. woqu>show pdbs
CON_ID CON_NAME                       OPEN MODE  RESTRICTED---------- ------------------------------ ---------- ----------
 2 PDB$SEED                       READ ONLY  NO
 3 WOQUPDB                        READ WRITE NOsys. woqu>COL PROPERTY_NAME FOR A30
sys. woqu>COL PROPERTY_VALUE FOR A30
sys. woqu>

(2)检查UNDO模式及归档模式

sys. woqu>SELECT property_name, property_value2  FROM database_properties3  WHERE property_name='LOCAL_UNDO_ENABLED';PROPERTY_NAME                  PROPERTY_VALUE------------------------------ ------------------------------LOCAL_UNDO_ENABLED             TRUEElapsed: 00:00:00.04sys. woqu>sys. woqu>archive log listDatabase log mode              Archive ModeAutomatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     7Next log sequence to archive   9Current log sequence           9sys. woqu>

(3)创建测试数据表t,注意这里的t表位于sys用户下

05:51:10 sys. woqupdb>create table t as select * from dba_objects where rownum<=10;Table created.Elapsed: 00:00:00.1005:52:41 sys. woqupdb>select count(*) from t;COUNT(*)----------10Elapsed: 00:00:00.0105:52:50 sys. woqupdb>

表t中共有10条数据。
(4)创建测试数据表t_tab,注意这里的t表位于zhaoweiqing用户下

05:51:46 zhaoweiqing. woqupdb>create table t_tab as select * from dba_objects where rownum<=999;Table created.Elapsed: 00:00:01.8405:52:15 zhaoweiqing. woqupdb>select count(*) from t_tab;COUNT(*)----------999Elapsed: 00:00:00.0105:52:19 zhaoweiqing. woqupdb>

(5)使用create pluggable database + NO DATA子句创建pdb:pdbtest

sys. woqu>CREATE PLUGGABLE DATABASE pdbtest FROM woqupdb NO DATA2  PATH_PREFIX = '/u01/app/oracle/oradata/woqu/pdbtest'3  FILE_NAME_CONVERT = ('/u01/app/oracle/oradata/woqu/woqupdb', '/u01/app/oracle/oradata/woqu/pdbtest');Pluggable database created.Elapsed: 00:00:09.35sys. woqu>

(6)检查克隆完成的pdbtest

sys. woqu>show pdbs
CON_ID CON_NAME    OPEN MODE  RESTRICTED---------- ----------- ---------- ----------
 2 PDB$SEED    READ ONLY  NO
 3 WOQUPDB     READ WRITE NO
 5 PDBTEST     MOUNTED
sys. woqu>SELECT pdb_id, pdb_name, con_uid, status, creation_scn, con_id FROM cdb_pdbs;PDB_ID PDB_NAME       CON_UID STATUS     CREATION_SCN     CON_ID---------- ----------- ---------- ---------- ------------ ----------
 3 WOQUPDB     1167267009 NORMAL          1443334          3
 2 PDB$SEED     399989944 NORMAL          1408751          2
 5 PDBTEST     3356573055 NEW             1956581          5Elapsed: 00:00:00.05sys. woqu>alter pluggable database pdbtest open;Pluggable database altered.Elapsed: 00:00:07.09sys. woqu>show pdbs
CON_ID CON_NAME    OPEN MODE  RESTRICTED---------- ----------- ---------- ----------
 2 PDB$SEED    READ ONLY  NO
 3 WOQUPDB     READ WRITE NO
 5 PDBTEST     READ WRITE NOsys. woqu>SELECT pdb_id, pdb_name, con_uid, status, creation_scn, con_id FROM cdb_pdbs;PDB_ID PDB_NAME     CON_UID STATUS CREATION_SCN     CON_ID---------- --------- ---------- ------ ------------ ----------
 3 WOQUPDB   1167267009 NORMAL      1443334          3
 2 PDB$SEED   399989944 NORMAL      1408751          2
 5 PDBTEST   3356573055 NORMAL      1956581          5Elapsed: 00:00:00.02sys. woqu>

(7)查看测试数据

sys. woqu>alter session set container=pdbtest;Session altered.Elapsed: 00:00:00.07sys. woqu>show user con_idUSER is "SYS"CON_ID------------------------------5sys. woqu>select count(*) from t;COUNT(*)----------10Elapsed: 00:00:00.00sys. woqu>select count(*) from zhaoweiqing.t_tab;COUNT(*)----------
 0Elapsed: 00:00:00.02sys. woqu>

通过测试可以看到sys下的对象中的数据依然克隆成功,而自建用户下的对象中数据并没有跟着一起克隆。

推荐教程:《Oracle视频教程

以上是实例解析Oracle容器数据库的安装和使用的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:CSDN。如有侵权,请联系admin@php.cn删除
甲骨文的目的:业务解决方案和数据管理甲骨文的目的:业务解决方案和数据管理Apr 13, 2025 am 12:02 AM

Oracle通过其产品和服务帮助企业实现数字化转型和数据管理。1)Oracle提供全面的产品组合,包括数据库管理系统、ERP和CRM系统,帮助企业自动化和优化业务流程。2)Oracle的ERP系统如E-BusinessSuite和FusionApplications,实现端到端业务流程自动化,提高效率并降低成本,但实施和维护成本较高。3)OracleDatabase提供高并发和高可用性数据处理,但许可成本较高。4)性能优化和最佳实践包括合理使用索引和分区技术、定期数据库维护及遵循编码规范。

oracle建库失败怎么删除oracle建库失败怎么删除Apr 12, 2025 am 06:21 AM

Oracle建库失败后删除失败数据库的步骤:使用sys用户名连接目标实例使用DROP DATABASE删除失败数据库查询v$database确认数据库已删除

oracle怎么循环创建游标oracle怎么循环创建游标Apr 12, 2025 am 06:18 AM

Oracle 中,FOR LOOP 循环可动态创建游标, 步骤为:1. 定义游标类型;2. 创建循环;3. 动态创建游标;4. 执行游标;5. 关闭游标。示例:可循环创建游标,显示前 10 名员工姓名和工资。

oracle视图怎么导出oracle视图怎么导出Apr 12, 2025 am 06:15 AM

可以通过 EXP 实用程序导出 Oracle 视图:登录 Oracle 数据库。启动 EXP 实用程序,指定视图名称和导出目录。输入导出参数,包括目标模式、文件格式和表空间。开始导出。使用 impdp 实用程序验证导出。

oracle数据库怎么停止oracle数据库怎么停止Apr 12, 2025 am 06:12 AM

要停止 Oracle 数据库,请执行以下步骤:1. 连接到数据库;2. 优雅关机数据库(shutdown immediate);3. 完全关机数据库(shutdown abort)。

oracle日志写满怎么办oracle日志写满怎么办Apr 12, 2025 am 06:09 AM

Oracle 日志文件写满时,可采用以下解决方案:1)清理旧日志文件;2)增加日志文件大小;3)增加日志文件组;4)设置自动日志管理;5)重新初始化数据库。在实施任何解决方案前,建议备份数据库以防数据丢失。

oracle动态sql怎么创建oracle动态sql怎么创建Apr 12, 2025 am 06:06 AM

可以通过使用 Oracle 的动态 SQL 来根据运行时输入创建和执行 SQL 语句。步骤包括:准备一个空字符串变量来存储动态生成的 SQL 语句。使用 EXECUTE IMMEDIATE 或 PREPARE 语句编译和执行动态 SQL 语句。使用 bind 变量传递用户输入或其他动态值给动态 SQL。使用 EXECUTE IMMEDIATE 或 EXECUTE 执行动态 SQL 语句。

oracle死锁怎么办oracle死锁怎么办Apr 12, 2025 am 06:03 AM

Oracle 死锁处理指南:识别死锁:检查日志文件中的 "deadlock detected" 错误。查看死锁信息:使用 GET_DEADLOCK 包或 V$LOCK 视图获取死锁会话和资源信息。分析死锁图:生成死锁图以可视化锁持有和等待情况,确定死锁根源。回滚死锁会话:使用 KILL SESSION 命令回滚会话,但可能导致数据丢失。中断死锁周期:使用 DISCONNECT SESSION 命令断开会话连接,释放持有的锁。预防死锁:优化查询、使用乐观锁定、进行事务管理和定期

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具