Oracle数据库是业界著名的关系型数据库管理系统,被广泛应用于企业数据存储和管理中。在企业中,通常需要在不同的环境中部署多个数据库,如生产环境、测试环境、开发环境等。在这种情况下,为了避免重复操作和减少出错的可能,可以使用克隆技术将一个数据库在另一个环境中快速地复制和部署。本文将介绍。
创新互联建站专注于琼海网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供琼海营销型网站建设,琼海网站制作、琼海网页设计、琼海网站官网定制、重庆小程序开发公司服务,打造琼海网络公司原创品牌,更为您提供琼海网站排名全网营销落地服务。
一、备份源数据库
在克隆前,必须确保源数据库没有损坏和故障,否则会影响克隆的质量和效率。在备份过程中,可以采用Oracle Data Pump或者快照技术来进行。首先介绍一下Data Pump备份的步骤:
1.使用命令行工具SQL*Plus连接到源数据库。
2.使用以下命令创建一个目录:
CREATE DIRECTORY backup_dir AS ‘/u01/backup’;
3.使用以下命令创建一个备份文件:
expdp system/123456 directory=backup_dir dumpfile=source_db.dmp
其中,system/123456是一个具有dba权限的账号和密码,backup_dir是之前创建的目录,source_db.dmp是备份文件的名称。
4.等待备份完成,可以通过以下语句查询备份状态:
SELECT * FROM dba_datapump_jobs;
当STATE列为COMPLETED时,备份已经成功。
5.复制备份文件到克隆数据库所在服务器的相应目录下,如/u01/clone。
二、创建克隆数据库的初始配置文件
在克隆数据库之前,必须先创建一个初始配置文件,该配置文件包含了克隆数据库在安装和配置过程中所需的基本信息。创建配置文件需要运行以下命令:
$ORACLE_HOME/perl/bin/perl $ORACLE_HOME/clone/bin/clone.pl ORACLE_HOME=/u01/app/oracle/product/11.2.0.4 \
RESPONSE_FILE=/u01/clone/clone.rsp \
CLONING_ORACLE_SID=clone \
ORACLE_BASE=/u01/app/oracle \
INVENTORY_LOCATION=/u01/app/oraInventory
其中,ORACLE_HOME是源数据库的安装目录,RESPONSE_FILE是配置文件的完整路径,CLONING_ORACLE_SID是克隆数据库的SID名称,ORACLE_BASE是克隆数据库的安装目录,INVENTORY_LOCATION是Oracle Inventory目录的位置。
三、启动克隆数据库
在创建初始配置文件后,可以使用以下命令来启动克隆数据库:
$ORACLE_HOME/bin/dbca -silent -createDatabase -templateName General_Purpose.dbc \
-gdbName=clone -sysPassword=123456 -systemPassword=123456 -characterSet=AL32UTF8 \
-datafileDestination=/u01/data \
-redoLogFileSize=500 \
-emConfiguration LOCAL
其中,-gdbName指定了克隆数据库的名称,-sysPassword和-systemPassword指定了sys和system账号的密码,-characterSet指定了字符集,-datafileDestination指定了数据文件存放的位置,-redoLogFileSize指定了重做日志文件的大小,-emConfiguration指定了是否启用Enterprise Manager。
四、导入备份数据
在克隆数据库启动后,需要将备份数据导入到克隆数据库中,可以使用以下命令:
impdp system/123456 directory=backup_dir dumpfile=source_db.dmp \
remap_schema=source_schema:clone_schema \
remap_tablespace=source_ts:clone_ts
其中,system/123456是在源数据库中创建备份文件时所使用的账号和密码,backup_dir是创建备份目录时所使用的目录名称,source_db.dmp是备份文件的名称,source_schema和source_ts是源数据库中的用户名和表空间名称,clone_schema和clone_ts是克隆数据库中的用户名和表空间名称。
五、启动克隆数据库并验证
在导入备份数据后,可以使用以下命令启动克隆数据库:
$ORACLE_HOME/bin/sqlplus / as sysdba
SQL> startup
然后,可以使用Oracle SQL客户端工具连接到克隆数据库,并进行验证,例如:
SQL> SELECT COUNT(*) FROM clone_schema.table_name;
如果返回的数据条数和源数据库中的相同,则说明克隆数据库已经成功完成。
:
通过以上步骤,可以在Linux环境下快速地克隆Oracle数据库,从而减少了重复操作和减小了出错的风险。备份数据和创建配置文件是克隆过程中必不可少的步骤,其中备份数据部分可以使用其他备份技术或者工具,如RMAN等。在实际应用中,还需要注意克隆数据库的硬件和软件要求,包括操作系统版本、硬盘容量、内存大小等。在克隆数据库完成后,可以进行一些必要的配置和优化工作,以达到更佳的性能和安全性。
相关问题拓展阅读:
1、基本配置
1.1)系统软件包安装
yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat unixODBC unixODBC-devel
1.2)用户创建
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
1.3)文件配置
1.3.1) 环境变量
vi ~oracle/.bash_profile
export ORACLE_BASE=/data/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/db_1
export ORACLE_SID=test # 最多 8个字符 ; 操作系统和 oracle实例关联的纽带 ;ORACLE_HOME+ORACLE_SID==>hash==> 共享内存段
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin # 将安装后的 oracle 命令追加到执行搜索路径
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib # 动态库的位置
export nls_lang=”SIMPLIFIED CHINESE_CHINA.ZHS16GBK” #客户端字符集激余设置
# 加载配置 :oracle 用户注销重新登录 或 source .bash_profile
1.3.2) 主机
echo “10.240.1.7 Database-backup” >> /etc/hosts #避免报错startup noumount时报错ORA-00000: normal, successful completion
1.3.3) 软件目录
mkdir -p /data/app/oracle/product/11.2.0.4/db_1
chown -R oracle:oinstall /data/app
1.3.4) 资源限制
1.3.4,1) vim /etc/sysctl.conf 添加到文件底端
kernel.shmall =
#Total amount of shared memory available(bytes or pages); 页的数量 ;*4096/1024/1024/1024=8G; 如果内存大于 8G,必须修改此参数
kernel.shmmax =
# 要>= 物理内存的一半 Maximum size of shared memory segment(bytes); 建议 >=sga_max_size(oracle申请内存大小 );
# 单个程序内存段更大多少 ;4G 的话分为两段 mem_seg1 mem_seg2,影响效率 ;
kernel.shmmni = 4096
# Maximum number of shared memory segments system-wide; 页老铅蔽的大小 ;
kernel.sem =128
SEMMSL SEMMNS SEMOPM SEMMNI
SEMMSL Maximum number of semaphores per set; 每个信号对象集的更大信号对象数
SEMMNS Maximum number of semaphores system-wide; 系统范围内侍州更大信号对象数 ;SEMMNS = SEMMSL*SEMMNI
SEMOPM 每个信号对象支持的更大操作数
SEMMNI Maximum number of semaphore identifiers; 系统范围内更大信号对象集数
fs.file-max #系统中所允许的文件句柄更大数目
net.ipv4.ip_local_port_range # 应用程序可使用的 IPv4 端口范围
net.core.rmem_default #套接字接收缓冲区大小的缺省值
net.core.rmem_max #套接字接收缓冲区大小的更大值
net.core.wmem_default #套接字发送缓冲区大小的缺省值
net.core.wmem_max #套接字发送缓冲区大小的更大值
#注释:OS32bit,oracle 最多申请 1.7G; 应该装64bitOS
#加载参数 sysctl -p
1.3.4 ,2) /etc/security/limits.conf oracle 在 linux 上操作的limit
# grep -v ‘^#’ /etc/security/limits.conf
oracle soft nproc 2023 #oracle 在 linux上打开 proc 数量
oracle hard nproc 16384
oracle soft nofile 1024 #oracle 在 linux上打开 file 的数量
oracle hard nofile 65536
# grep ‘limit’ /etc/pam.d/system-auth
session required pam_limits.so
1.3.4,3) 关闭防火墙、SELINUX
iptables -F
更改 /etc/selinux/config 文件 –>SELINUX=disabled
2、克隆 ORACLE_HOME
2.1)将远程ORACLE_HOME完全复制到本地
#进入到本地ORACLE_HOME路径
su – oracle
cd /data/app/oracle/product/11.2.0.4/
#将远程ORACLE_HOME完全复制到本地
scp -pr :/data/app/oracle/product/11.2.0.4/db_1/ .
2.2)执行clone.pl 克隆脚本更改参数配置(ORACLE_SID、ORACLE_HOME)
$ cd /data/app/oracle/product/11.2.0.4/db_1/clone/bin
$ ls
clone.pl prepare_clone.pl
#注意每个参数后,等号后不能有空格,否则被识别成无效选项
$ perl clone.pl ORACLE_SID=test ORACLE_BASE=/data/app/oracle ORACLE_HOME=/data/app/oracle/product/11.2.0.4/db_1/ ORACLE_HOME_NAME=OraDb11g_home1
…….最后提示如下信息表示,克隆成功…
The following configuration scripts need to be executed as the “root” user.
/data/app/oracle/product/11.2.0.4/db_1/root.sh
To execute the configuration scripts:
1. Open a terminal window
2. Log in as “root”
3. Run the scripts
The cloning of OraDb11g_home1 was successful.
……………….
二、手动建库
1、配置参数文件 (测试环境简单参数,若有需求,可补充 )
$ cd $ORACLE_HOME/dbs
$ pwd
/data/app/oracle/product/11.2.0.4/db_1/dbs
$
$ cat inittest.ora
db_name=test
db_files = 80
db_file_multiblock_read_count = 8
log_checkpoint_interval = 10000
processes = 50
parallel_max_servers = 5
log_buffer = 32768
max_dump_file_size =# limit trace file size to 5 Meg each
global_names = TRUE
#control_files = (ora_control1, ora_control2)
sga_max_size=300M
sga_target=300M
*.local_listener='(ADDRESS_LIST=(Address=(Protocol=tcp) (Host=10.240.1.7)(Port=1521)))’ #避免启动数据库时报错(ORA-00119、ORAlocal_listener配置无效)
$
2、启动数据库到nomount
#进入数据库
$sqlplus / as sysdba
#开启数据库到nomount状态
SQL> startup nomount
ORACLE instance started.
Total System Global Areabytes
Fixed Sizebytes
Variable Sizebytes
Database Bufferytes
Redo Bufferytes
SQL>
3、创建数据库,到open状态 —>前提:mkdir -p /data/app/dbf/;chown -R oracle:oinstall /data/app/dbf/
SQL>CREATE DATABASE test
USER SYS IDENTIFIED BY change_on_install
USER SYSTEM IDENTIFIED BY manager
LOGFILE GROUP 1 ( ‘/data/app/dbf/redo01.log’) SIZE 100M,
GROUP 2 (‘/data/app/dbf/redo02.log’) SIZE 100 M,
GROUP 3 (‘/data/app/dbf/redo03.log’) SIZE 100 M
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXINSTANCES 1
CHARACTER SET ZHS16GBK
NATIONAL CHARACTER SET AL16UTF16
DATAFILE ‘/data/app/dbf/system01.dbf’ SIZE 325M REUSE
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE ‘/data/app/dbf/sysaux01.dbf’ SIZE 325 M REUSE
DEFAULT TABLESPACE users datafile ‘/data/app/dbf/users.dbf’ size 50m
DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE ‘/data/app/dbf/temp01.dbf’
SIZE 20 M REUSE
UNDO TABLESPACE undotbs
DATAFILE ‘/data/app/dbf/undotbs01.dbf’
SIZE 200 M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
Database created.
SQL>
4、确认数据库状态
SQL> select status from v$instance;
STATUS
OPEN
SQL>
5、 将DBF 设置自动扩展,避免稍后执行脚本加载数据字典表/包/scott用户 时空间不足
alter database datafile 1 autoextend on;
alter database datafile 2 autoextend on;
alter database datafile 3 autoextend on;
alter database datafile 4 autoextend on;
6、创建数据字典/包/scott用户
数据字典视图 : @?/rdbms/admin/catalog.sql
系统包/存储过程 : @?/rdbms/admin/catproc.sql
用户PROFILE表 : @?/sqlplus/admin/pupbld.sql
以上已完成安装oracle软件及数据库.
问题整理和完善
1、***** sqlplus / as sysdba 提示未找到libclntsh.so.11.1文件
$ sqlplus / as sysdba
sqlplus: error while loading shared libraries: libclntsh.so.11.1: cannot open shared object file: No such file or directory
$cd $ORACLE_HOME/lib/
$ ls libclntsh.so*
libclntsh.so libclntsh.so.10.1 –>只有10.1 cp -rp 连带属性完全复制一份,正常若有libclntsh.so.11.1文件可能是权限问题。
$ cp -rp libclntsh.so.10.1 libclntsh.so.11.1
$ sqlplus / as sysdba
… 正常.
2、用于sys密码登录
orapwd file=orapwtest password=test
3、ORA-00904: “wm_concat”:invalid identifier
执行创建WMSYS用户脚本
SQL>@?/rdbms/admin/owmctab.plb
SQL>@?/rdbms/admin/owmaggrs.plb
SQL>@?/rdbms/admin/owmaggrb.plb
4、创建数据库时报错
ERROR at line 1:
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-01501: CREATE DATABASE failed
ORA-01519: error while processing file ‘?/rdbms/admin/dtxnspc.bsq’ near line 5
ORA-00604: error occurred at recursive SQL level 1
ORA-30012: undo tablespace ‘UNDOTBS02’ does not exist or of wrong type
Process ID: 35451
Session ID: 2661 Serial number: 1
关于linux oracle 克隆的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
成都创新互联科技有限公司,是一家专注于互联网、IDC服务、应用软件开发、网站建设推广的公司,为客户提供互联网基础服务!
创新互联(www.cdcxhl.com)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。创新互联——四川成都IDC机房服务器托管/机柜租用。为您精选优质idc数据中心机房租用、服务器托管、机柜租赁、大带宽租用,高电服务器托管,算力服务器租用,可选线路电信、移动、联通机房等。
当前标题:如何在Linux环境下克隆Oracle数据库(linuxoracle克隆)
分享路径:http://www.mswzjz.cn/qtweb/news37/216887.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能