一、安装oracle服务器时会出现如下页面:
Step1:全局数据库名和数据库口令要填写的。数据库名就是后来要连接的数据库名。
数据库口令也就是下来系统用户的密码口令:现在我们把全局数据库名设为orcl:数据库口令也是orcl:那么下面系统用户名system 的密码就是orcl;
Oracle 主目录位置记住放到一个大点的硬盘下。
Step2:直接下一步会出现如下图界面,会看到出现一个警告,那也无大碍,选中之后下一步就行了。
Step3:安装过程中会有下面的界面需要管理口令,默认有两个用户名没有解锁,system和sys,但是system和sys也有区别,角色不一样,我们这里只用system用户名默认口令也是刚开始的数据库口令:orcl。此时直接点击确定即可。
Step4:直接下一步,会出现下面的安装结束界面。退出安装即可。
二、orcle客户端安装:
Step1:直接下一步
Step2:选择管理员安装
Step3:客户端路径默认和服务器同目录,不用改。
Step4:下一步
Step5:直接安装到安装完毕即可:
三、Sql Navigator For Oracle 6.5.0的安装
Step1:安装下图的红色框里的文件即可,安装默认的配置就行。非常简单。
Step2:安装好后你可以在所有程序里打开该工具如下图
step3:打开后会有对话快弹出就是让你输入Authorization Key;此时打开就会得出具体的信息,点Ok后就进入Sql Navigation操作界面了。
我们可以看到所有的都安装好后如下图都已经安装到所有程序里了。
四、接下来开始配置oracle服务器的监听程序如下图
Oracle服务器打开如下图的界面。
Step1:选择监听程序配置,下一步
Step2:选择添加,下一步
Step3:此时监听程序名默认LISTENER ,默认即可,下一步
Step4:选择TCP协议,下一步
Step5:使用标准端口号1521,默认即可下一步
Step6:此时不需要配置另一个监听程序,故选择否。下一步
直到完成。
五、oracle服务器配置本地net服务名配置:
step1:Oracle服务器打开如下图的界面。
Step2:此时选择本地服务名配置。下一步
Step3:选择添加,下一步
Step4:注意服务器名也就是你一开始装oracle 服务端时所填写的名字上边已经设为orcl。
在此处写入orcl即可;下一步
Step5:此时选择TCP协议下一步
Step6:主机名也就是电脑的名字。下一步
Step7:到这一步,为了保险起见,是要进行测试的。下一步
Step8:选择更改登录用户名 是系统用户system,密码也就是数据库的口令orcl
上面都已提到过。
Step9:现在可以看出已经测试成功。
Step10:下面的网络服务器名默认为orcl下一步
Step11:此时选择否。
Step12:配置完毕后,完成即可。
此时就把服务器配置本地net服务名配置好了
六、按照同样的步骤把客户端的net服务名配置一下(客户端的监听程序不用配置,因为只有服务器有监听程序)
七、下面进入Sql Navigator的操作界面。
Step1:打开Sql Navigator 输入数据库为:orcl 用户名:system 口令:orcl登录到如图:
Step2:进入之后用开始创建你自己的用户名,密码。
CREATE USER aa IDENTIFIED BY bb;//创建你自己的用户名密码,记住等到用imp导入数据表的时候用你自己建的用户名密码导入,否则会有问题的;这里比如说用户名是aa,密码是bb下边这2句话是给你创建的用户授权的。一起执行即可。
GRANT CREATE SESSION TO aa;//这样确保该用户可以登录数据库
GRANT CREATE TABLE TO aa;//给你的用户名授权
Step3:创建好后,下面开始创建表空间Tablespaces(因为Oracle中表空间是指定一部分硬盘空间作为数据存储的空间,是联系硬件和软件的基础,因此必须要在表空间的基础上建立表。Oracle数据库建立时会自动建立几个表空间。至于说导入数据的时候要建立表空间,一般是因为导出的数据的时候同时导出了表空间信息,因此导入的时候会要求建立同名的表空间,而不会使用系统自带的默认表空间)。
如下图是Sql Navigator里连接的数据库进去之后按F12即出现此界面。
Step4:右击Tablespaces这个有个Create命令就可以创建表空间名称及配置他的的大小具体的创建名称和大小需要参考开发人员的(需要问开发人员要一下他的配置信息放到你的客户端安装目录下 NETWORK\ADMIN \tnsnames.ora比如下面的)
Step5:用你现在创建好的账号,登录上去,参照下面开发人员给你的这个账号下面的表空间新建你的用户名下的表空间。表空间的空间较大,其路径要单独放一个盘里面或者放一个空间较大的盘下!
DATA SOURCE=xxx;uid=xxx;pwd=xxx;
Step6:一切弄好之后开始进行数据表导入运行里打开cmd命令参考下图其中红色框是要输入的信息,其余的直接按Enter键即可;(首次导入时这样,但以后会有具体要求)
Q:到现在大家肯定会问一开始叫建立了表空间,可是到导入的时候并没有用到表空间呀,那么导入的表和表空间是怎样联系在一起的呢?
A:因为我们导入的是备份文件,备份文件又是别人在现有系统下备份出来的,这些对应关系在别人一开始创建表的时候就固定表空间了,比如现在我们创建一个表名为Test位于名为USERS的表空间下,请参考下面创建表的语句:
create table Test
(
ENAME VARCHAR2(10),
JOB VARCHAR2(9),
SAL NUMBER,
COMM NUMBER
)
tablespace USERS
所以在我们这边导入表的时候,它会自己去找它对应的表空间,
请看下图有个查询语句” select * from user_tables”按F9你会看到下面的结果栏里查询到的所有的表信息。这里user_tables是一个系统表。
Step7:如果最后导入失败或者不全,首先要把你导入的数据表删除掉(2)以防止数据行累加。
现给出如下代码参考:遇到具体情况:比如有的视图导入失败了则执行(3)以此类推。
(1)select Count(*) from user_tables // 用来查询有多少张表
(2)--delete tables
select 'drop table ' || table_name ||';'||chr(13)||chr(10) from user_tables; //查询出所有的表前面加上’drop table’是为了如果导入失败时,以便于执行这些删除语句。
(3) --delete views
select 'drop view ' || view_name||';'||chr(13)||chr(10) from user_views; //查询出所有的视图前面加上’drop view是为了如果导入失败时,以便于执行这些删除语句。
(4)--delete seqs
select 'drop sequence ' || sequence_name||';'||chr(13)||chr(10) from user_sequences; //查询出所有的序列前面加上’drop sequence’是为了如果导入失败时,以便于执行这些删除语句。
(5) --delete functions
select 'drop function ' || object_name||';'||chr(13)||chr(10) from user_objects where object_type='FUNCTION'; //查询出所有的函数前面加上’drop function’是为了如果导入失败时,以便于执行这些删除语句。
(6)--delete procedure
select 'drop procedure ' || object_name||';'||chr(13)||chr(10) from user_objects where object_type='PROCEDURE'; //查询出所有的存储过程前面加上’drop procedure’是为了如果导入失败时,以便于执行这些删除语句。
(7) --delete package
select 'drop package ' || object_name||';'||chr(13)||chr(10) from user_objects where object_type='PACKAGE'; //查询出所有的程序包前面加上’drop package’是为了如果导入失败时,以便于执行这些删除语句。
(8)--delete trigger
SELECT 'drop TRIGGER "' ||SYS_CONTEXT('USERENV','CURRENT_USER')||'"."'|| TRIGGER_NAME ||'";' ||CHR(13) ||CHR(10)FROM USER_TRIGGERS //查询出所有的触发器前面加上’drop TRIGGER’是为了如果导入失败时,以便于执行这些删除语句。
备注:以上所整理的难免会有疏漏之处,仅供参考。具体情况还请到时相互沟通。如若带来不便,敬请谅解。