2023年8月1日发(作者:)

关于PLSQL中的数据库的备份和还原关于PLSQL中的数据库的备份和还原背景:主机上已安装oracle客户端和服务端,备份还原PLSQL中的DB,使其能连接到本地DB,博主使⽤oracle11g。⼀、备份使⽤命令:exp username/password@客户端服务名 file=path(路径)

可能报错:⽆法连接⽬标主机

原因:oracle服务端未配置服务名。

解决⽅法:

1.打开服务端的(路径:dbhome_1NETWORKADMIN),加⼊客户端的服务名。例如:我的客户端服务名配置LOLO = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.35)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) )将上如=述代码copy到服务端。

2.打开服务端的Net Manager,对加⼊的服务名LOLO进⾏连接测试,⽤PLSQL的username和passwd。

3.测试成功后,在cmd运⾏备份code。(注意:前述命令备份的是整个⽅案,包括表结构、索引等等,若有其他它需要,请⾃⾏百度)⼆、还原

使⽤命令:imp username/password@服务端服务名 full=y file=(备份path)

可能报错:⽆法连接到⽬标主机

此时我们去服务端的Net Manager测试

可能报错:ORA-12514,监听程序⽆法识别当前服务。

解决⽅法:

(以下配置若⽆特殊说明,均在服务端进⾏)

1.进⼊所在⽬录,可能会看到⼀个名为的⽂件,若有,建议删除。

2.打开Net Configuration Assiant,配置监听服务。

监听程序配置->添加->监听程序名(默认)–>选定的协议(TCP)–>使⽤标准端⼝号 1521->是否配置另⼀监听程序 否->完成

3.此时dbhome_1NETWORKADMIN会增加⼀个⽂件,⽤记事本打开,修改内容如下:

在SID_LIST=后加⼊code:(SID_DESC= (GLOBAL_DBNAME=ORCL) (ORACLE_HOME=F:appAdministratorproduct11.2.0dbhome_1) (SID_NAME=orcl) )其中GLOBAL_DBNAME可在sqlplus中键⼊select name from V$database;查询得到,ORACLE_HOME修改为⾃⼰的path,SID_NAME即中的SERVICE_NAME。3.在cmd测试监听是否配置成功。

键⼊命令:lsnrctl start

若显⽰已经启动,键⼊:lsnrctllsnrctl stoplsnrctl start重启监听服务。

4.在Net Manager 中进⾏连接测试。

5.登录sqlplus,⽤create user username identified by passwd; ⽤户名密码可以和备份时⼀样,⽅便记忆。成功创建⽤户后grant dba tousername; 授予dba权限。

6.在cmd执⾏还原命令。三、PLSQL连接

可能报错:连接超时等,也就是连接不上。

解决⽅法:

1.在Net Configuration Assiant 中配置本地⽹络服务名,或直接在tnsnames写⼊配置⽂件,这⾥默认⼤家都会。当然也可以使⽤中已经存在的服务名,毕竟之前我们已经测试成功了,但是建议新建⼀个服务名以便区分。

Manager中进⾏连接测试。

3.将 中新增的服务名配置加⼊到客户端的中,注意,不做修改。

连接时选择该服务名。⾄此,PLSQL可连接到本地DB。

2023年8月1日发(作者:)

关于PLSQL中的数据库的备份和还原关于PLSQL中的数据库的备份和还原背景:主机上已安装oracle客户端和服务端,备份还原PLSQL中的DB,使其能连接到本地DB,博主使⽤oracle11g。⼀、备份使⽤命令:exp username/password@客户端服务名 file=path(路径)

可能报错:⽆法连接⽬标主机

原因:oracle服务端未配置服务名。

解决⽅法:

1.打开服务端的(路径:dbhome_1NETWORKADMIN),加⼊客户端的服务名。例如:我的客户端服务名配置LOLO = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.35)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) )将上如=述代码copy到服务端。

2.打开服务端的Net Manager,对加⼊的服务名LOLO进⾏连接测试,⽤PLSQL的username和passwd。

3.测试成功后,在cmd运⾏备份code。(注意:前述命令备份的是整个⽅案,包括表结构、索引等等,若有其他它需要,请⾃⾏百度)⼆、还原

使⽤命令:imp username/password@服务端服务名 full=y file=(备份path)

可能报错:⽆法连接到⽬标主机

此时我们去服务端的Net Manager测试

可能报错:ORA-12514,监听程序⽆法识别当前服务。

解决⽅法:

(以下配置若⽆特殊说明,均在服务端进⾏)

1.进⼊所在⽬录,可能会看到⼀个名为的⽂件,若有,建议删除。

2.打开Net Configuration Assiant,配置监听服务。

监听程序配置->添加->监听程序名(默认)–>选定的协议(TCP)–>使⽤标准端⼝号 1521->是否配置另⼀监听程序 否->完成

3.此时dbhome_1NETWORKADMIN会增加⼀个⽂件,⽤记事本打开,修改内容如下:

在SID_LIST=后加⼊code:(SID_DESC= (GLOBAL_DBNAME=ORCL) (ORACLE_HOME=F:appAdministratorproduct11.2.0dbhome_1) (SID_NAME=orcl) )其中GLOBAL_DBNAME可在sqlplus中键⼊select name from V$database;查询得到,ORACLE_HOME修改为⾃⼰的path,SID_NAME即中的SERVICE_NAME。3.在cmd测试监听是否配置成功。

键⼊命令:lsnrctl start

若显⽰已经启动,键⼊:lsnrctllsnrctl stoplsnrctl start重启监听服务。

4.在Net Manager 中进⾏连接测试。

5.登录sqlplus,⽤create user username identified by passwd; ⽤户名密码可以和备份时⼀样,⽅便记忆。成功创建⽤户后grant dba tousername; 授予dba权限。

6.在cmd执⾏还原命令。三、PLSQL连接

可能报错:连接超时等,也就是连接不上。

解决⽅法:

1.在Net Configuration Assiant 中配置本地⽹络服务名,或直接在tnsnames写⼊配置⽂件,这⾥默认⼤家都会。当然也可以使⽤中已经存在的服务名,毕竟之前我们已经测试成功了,但是建议新建⼀个服务名以便区分。

Manager中进⾏连接测试。

3.将 中新增的服务名配置加⼊到客户端的中,注意,不做修改。

连接时选择该服务名。⾄此,PLSQL可连接到本地DB。