当前位置:   article > 正文

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

oracle 新建实例

Oracle11g数据库软件安装

下载地址我就不说了,网上一大堆
1)运行安装程序setup.exe,
双击运行
2)选择“基本安装”,去掉接收邮件勾选,
在这里插入图片描述

不选择创建启动数据库,点击下一步:
在这里插入图片描述
在这里插入图片描述
以下步骤全部进行默认操作。
在这里插入图片描述
在这里插入图片描述
选择或者输入安装的目录;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
数据库软件安装完成。
在这个时候,监听应该已经起来了,如果服务里面没有listener在运行,那么需要你手动起一下,去Oracle安装目录找到两个文件运行一下就可以了,具体百度一下,这里不再描述了。

创建一个新的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!截图时候我忘了改了
在这里插入图片描述
最后一步
在这里插入图片描述
1.2 (非必须)Oracle11g如果无法导出空表的修改
11G中有个新特性,当表无数据时,不分配segment,以节省空间,但是导致备份数据库的时候,空表无法被导出。解决方法:
1、还没还原dmp时,使用system账号登陆(可以使用plsql),并在命令行中执行: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。

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

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

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

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

3.1.3 最终创建用户
登录后复制以下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;
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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/689467
推荐阅读
相关标签
  

闽ICP备14008679号