Oracle11g数据库安装以及创建实例和数据还原巨详细步骤

本文详细介绍了Oracle11g数据库软件的安装流程,包括创建新实例、配置数据库参数、创建表空间,以及如何还原和导出数据库。特别关注了Oracle11g的特性,如空表导出问题的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Oracle11g数据库软件安装

下载地址(2024年12月16日亲测有效,不排除Oracle后续调整目录结构导致url失效)
https://www.oracle.com/partners/campaign/112010-win64soft-094461.html
下载这两个压缩文件,并把它解压到一个文件夹里,这样就形成了一个完整的Oracle安装包
在这里插入图片描述

1)运行安装程序setup.exe,
双击运行
2)选择“基本安装”,去掉接收邮件勾选,
在这里插入图片描述

不选择创建启动数据库,点击下一步:
在这里插入图片描述
在这里插入图片描述
以下步骤全部进行默认操作。
在这里插入图片描述
在这里插入图片描述
选择或者输入安装的目录;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
配置Oracle监听
Windows搜索里搜Oracle Net Confi就能把它搜出来,全部默认下一步,直到完成
在这里插入图片描述

数据库软件安装完成。
在这个时候,监听应该已经起来了,可以看一下服务里面没有Listener结尾的Oracle服务在运行,如果没有,后面会报错的,这里必须要把Oracle服务启动起来,需要你手动起一下,从Oracle安装目录的app目录下,搜LISTENER.ORA,找到两个文件运行一下就可以了,具体百度一下,这里我有点忘记了,后面会补充。也可以在Net Manager里检查一下监听程序的计算机名和端口

创建一个新的Oracle实例(创建一个新的数据库)

打开DatabaseConfiguration Assistant
在这里插入图片描述
2.2 创建数据库的配置步骤
在这里插入图片描述
在这里插入图片描述
选择定制数据库
在这里插入图片描述

创建的全局数据库名写ORCL(SID自动生成)
在这里插入图片描述
在这里插入图片描述
用户密码统一为orcl(也可以是别的,自己定)
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
如果你是本地开发用,那么只保留着一个就可以,如果你是服务器部署生产环境,全部都需要勾选
在这里插入图片描述

“内存”标签页中选择“典型”,百分比输入60(意思就是Oracle占用系统物理内存的60%)-80之间的数字,最好不要超过80
在这里插入图片描述
如下图,修改两个初始化参数:processes和sessions。两个参数的关系应该是sessions=processes*1.5+22(这里Oracle10G和Oracle11G不一样)。Processes的取值表示最大同时连接到oracle的连接数。取值设置可以实际值情况设置,一般设置为300基本够用,默认设置为150。设置完成后,点击“关闭”按钮返回主窗口。在主窗口中点击“下一步”按钮。
在这里插入图片描述
(非必须)创建一个名称为:indx 的表空间。说明:创建index时以后存放索引能后用到。大小设置为1024!截图时候我忘了改了
这里创建什么样的表空间,主要是根据你要还原的dmp数据库文件里的内容决定的,如果没有表空间,还原的时候会报错,这里如果实在不清楚需要什么表空间,可以先过,后面手动创建也是可以的,怎么建后面有说明
在这里插入图片描述
最后一步
在这里插入图片描述
1.2 (非必须)Oracle11g如果无法导出空表的修改,这个很重要!!!!
11G中有个新特性,当表无数据时,不分配segment,以节省空间,但是导致备份数据库的时候,空表无法被导出。解决方法:
1、还没还原dmp时,打开cmd,输入sqlplus,使用system账号登陆,密码是上面设置的,并在命令行中执行:

alter system set deferred_segment_creation=false;

看到如下图所示即可
在这里插入图片描述

2、想补救时,使用***帐号登录(可以使用plsql或PB),执行下面的sql:
select ‘alter table ‘||table_name||’ allocate extent;’ from user_tables where tablespace_name=‘USERS’;
获得一批sql,想办法执行这一批sql。

Oracle客户端

这里再说一下Oracle客户端,它可能会导致一系列Oracle连接不上的问题,例如oci.dll文件过低、Navicat用32位但是Oracle装的64位,我们本地测试的话,可以从远程服务器上下载相对应的oci文件,并从Navicat里指定
远程连接服务器的Oracle时,需要在服务器上专门安装一个Oracle客户端,注意不要用解压版的。

还原数据库(如果你在公司会经常用到,自己用可以跳过)

首先此步的应用场景是:你的项目经理给了你一个dmp文件,让你还原到你的电脑上

3.1创建用户并授权
3.1.1 打开sqlplus
(windows键+R,输入sqlplus,回车,即可打开)

3.1.2 登录system用户
用户名:system,密码:orcl(上面第5步时候设置的)

3.1.3 最终创建用户
sqlplus system/orcl@ORCL登录后复制以下SQL语句到上图的命令框,创建NGUSER用户,运行完成请多敲几下回车确保语句全部执行完成,请务必确保用户名为"大写"且不要用Navicat等其他工具创建
在这里插入图片描述
创建用户之前,登录system用户的时候需要指定实例,不然创建的用户没有办法登录,会提示用户密码无效!
这里我加了引号,因为我试着有时候不加引号创建的用户不能访问,如果报错可以把引号去掉
CREATE USER “用户名” PROFILE “DEFAULT” IDENTIFIED BY “9003” DEFAULT TABLESPACE “USERS” TEMPORARY TABLESPACE “TEMP” ACCOUNT UNLOCK;
GRANT CREATE ANY TABLE TO “用户名”;
GRANT UNLIMITED TABLESPACE TO “用户名”;
GRANT “CONNECT” TO “用户名”;
GRANT “RESOURCE” TO “用户名”;
GRANT CREATE ANY VIEW TO “用户名”;
GRANT dba TO “用户名”;

3.2 导入dmp文件
管理员身份运行cmd(windows键+R弹出后输入cmd即可)

打开后复制以下语句到输入框:
imp NGUSER/9003@ORCL full=y file=数据库备份文件路径(包含文件名) ignore=y;
例如(具体请根据dmp文件所在盘符和文件名决定):impNGUSER/9003@ORCL full=y file=F:\ldyk20200516init.dmp ignore=y;
这里如果还原时提示表空间不存在,这里再说明一下如何创建表空间

create tablespace 表空间名 datafile 'D:\APP\xxx\ORADATA\ORCL\表空间名.dbf' size 1024M;

查询表空间

SELECT tablespace_name, file_name FROM dba_data_files WHERE tablespace_name = '表空间名';

3.2.1 导出数据库(数据库备份)
exp 用户名1/密码@192.168.XX.XX:1521/数据库实例名 file=F:\路径\文件名.dmp owner=‘用户名2’
注意第一个用户名1是由哪个用户导出,第二个用户名2是导出哪个用户底下的数据
☆再注意 Oracle11g默认不导出空表,这是个大坑,很可能导出的表不全导致无法还原(RACLE 11g 中有个新特性,当表无数据时,不分配segment,以节省空间)
解决办法是:sqlplus执行
alter system set deferred_segment_creation=false;
执行完看看成了没:
show parameter deferred_segment_creation;
还有一种办法比较笨,就是把每个表插入一条数据再删除,Oracle就不认为它是空表了/滑稽.jpg。

3.3注意事项:
3.3.1.如果导入过程中出现问题需要重新导入
请删除用户(删除用户和用户底下所有的数据):
打开cmd(windows键+R,输入cmd即可打开),
输入:sqlplus system/orcl@实例名 (这个实例名一般是ORCL,也可以是其他的,看你想删哪个)

复制以下语句到命令框:
drop user 用户名 cascade;
然后重新执行步骤2.1的创建用户和授权语句,完成后再导入dmp文件

如果提示“无法删除当前连接的用户”怎么办?
select saddr,sid,serial#,paddr,username,status from v$session where username = ‘要删除的用户名’;
alter system kill session ‘11,1132’;(第一个是sid,第二个是serial#)
alter system kill session ‘14,2677’;
alter system kill session ‘71,6766’;

3.3.2. **如果导入过程中提示: "***值太大,无法执行"
这就是没有设置ZHS16GBK的原因,和3.1.1,3.1.2一样,打开sqlplus,登录后先确定连接的数据库是刚刚创建的ORCL,然后登录有dba权限(最高权限)的用户(system.),依次执行以下命令语句
conn /as sysdba;
shutdown immediate;
startup mount;
alter system enable restricted session;
alter system set JOB_QUEUE_PROCESSES=0;
alter system set AQ_TM_PROCESSES=0;
alter database open;
alter database character set internal_use ZHS16GBK;
alter database character set ZHS16GBK
shutdown immediate;
startup;
执行完成之后再次进行导入dmp文件(步骤3.2)就可以了

3.3.3 如果安装完Oracle客户端,Oracle登不上了咋整?
打开环境变量,找到Path并编辑,将client移到原来的dbhome下面即可

结尾标语:本文档是Oracle11g的安装,与其他版本略有区别,请务必确认自己的版本为Oracle11g

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值