环境搭建

前情提要:

生产环境数据库数据过多,为减少数据库空间,将一些历史查询数据放到另一个数据库中,由于一个服务没法根据不同情况访问不同数据库,因此新搭建一套后台服务,该服务指向新的数据库

一:基于linux环境的oracle安装

1.环境准备

1).新建一个oinstall组

groupadd oinstall

2).新建一个dba组

groupadd dba

3).在/home/orcle下建立一个名为oracle的用户,其主组是oinstall,附属组是dba

useradd -g oinstall -G dba -m -d /home/oracle oracle

注:useradd命令:
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。

4).为oracle用户设置密码

passwd oracle

5).建立目录,修改权限,修改所有者
创建oracle软件安装目录和数据文件存放的目录

mkdir -p(递归创建目录) /home/oracle/product/11.2.0/db_2

修改/home/oracle下的所有文件的用户和组改为oracle(用户),oinstall(组)

chown -R oracle:oinstall /home/oracle

修改/home/oracle下所有文件的权限,用户本身拥有所有权限,组内用户拥有读和执行权限,组外其他用户也是读和执行(读4,写2,执行1)

chmod -R 755 /home/oracle

创建oracle日志目录

mkdir -p /home/oraInventory 

修改该目录所属用户和组

chown -R oracle:oinstall /home/oraInventory 

6).打开oracle图形化安装界面

  • 无法通过xshell直接打开图形化界面:
    因为xshell本身不带unix的图形化功能,应该下载xmanager,在xshell中–属性(alt+p)–连接–ssh–隧道–转发X11连接到Xmanager,并且必须使用oracle用户ssh登陆,不可以通过ssh登陆root再su - oracle来打开安装软件
  • PRVF-0002错误:
    在xshell中输入hostname查到主机别名,将此别名加入到/etc/hosts文件中,例:我本机hostname为datastore,修改后/etc/hosts/内容大致为
127.0.0.1       datastore localhost.localdomain localhost
::1     datastore localhost6.localdomain6       localhost6
  • 安装软件为乱码:
export LANG=en_US.UTF-8 

7).图形界面流程
8).配置oracle用户的环境变量

vi /home/oracle/.bash_profile
#新增下面值,原有值不变
ORACLE_BASE=/home/oracle;export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1;export ORACLE_HOME
ORACLE_SID=fcrhost;export ORACLE_SID
PATH=$ORACLE_HOME/bin:$PATH;export PATH

9).建立特定表空间,表空间的位置决定数据文件位置,需要放在大点的空间里,可以不跟oracle客户端一个路径

sqlplus / as sysdba;
create tablespace data_spc01 datafile '/home/oracle/oradata/fcrhost/fcr01.dbf' size 1024m autoextend on next 50M maxsize 5120M;

注:
删除表空间

DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;

表空间已满,为表空间增加数据文件

ALTER TABLESPACE tablespace_name ADD DATAFILE '/home/oracle/oradata/fcrhost/fcr02.dbf'
SIZE 10240M autoextend on next 1000M maxsize 20480M;

10).从已有环境导出c50hst和c50brn用户的dump文件,impdp跟expdp选项几本相同只不过一个用来导出,一个用来导入

  • directory:放入directory为mydp对应的路径的文件夹中,且directory必须放在前面不能放在最后,否则报错
    建立directory:
sqlplus / as sysdba;
create directory mydp as '/home/oracle/mydp';
expdp 用户名/密码 directory=mydp dumpfile=a.dump;

建立后可以通过语句,查到oracle中对应的路径

select * from dba_directories t where t.directory_name='MYDP';
  • content:用于指定要导出的内容,all(对象及其数据),data_only(数据),metadata_only(对象),默认为all
expdp 用户名/密码 DIRECTORY=mydp DUMPFILE=a.dump content=all
  • dumpfile:指定导出的文件的名称,默认值为expdat.dmp
  • exclude:排除哪些数据库对象不导,例视图
expdp scott/tiger directory=dump dumpfile=a.dmp exclude=view
  • full:full=y( 全库导出):
    full=n或不加full: 默认导出连接数据库的用户数据库对象
    full=y导出整个数据库:
expdp lttfm/lttfm@fgisdb dumpfile =full.dmp full=y logfile=full.log directory=dir_dp job_name=my_job
  • job_name:指定当前导出的任务名,导出完成后job自动卸载,默认值为SYSTEM.SYS_EXPORT_SCHEMA_01
    客户端退出导出时,可以通过expdp 用户/密码 attach=用户名.定义的任务名 来连接到正在执行中的job监视界面
SELECT * FROM DBA_DATAPUMP_JOBS;--查看存在的job

在监视界面:
status:查看当前JOB的状态及相关信息
stop_job:暂停JOB(暂停job后会退出expor模式)
start_job:打开暂停的JOB(并未开始重新执行)
continue_client :通过此命令重新启动 “LTTFM”.”MY_JOB”
kill_job:取消当前的JOB并释放相关客户会话(将job删除同时删除dmp文件)
exit_client:通过此命令退出export模式

  • logfile:导出日志名,默认export.log
  • query:指定导出数据的where条件
query='where deptno=20';
  • schemas:该方案用于指定执行方案模式导出,默认为当前用户方案.
  • tables:表模式导出
tables=表1,表2,表3
  • parfile:指定导出参数所在的文件,此时以命令行定义的dumpfile为主,不以wsh.par中的dumpfile为主,谁在后面以谁为主
parfile=wsh.par dumpfile=expdp.dmp
  • remap_schema:从A用户导出的数据,想要导入到B用户中去
remap_schema=A:B

11)通过脚本完成建立用户,导库,授权等一系列操作
脚本过长,只对其中几份内容进行讲解

你可能感兴趣的:(环境搭建)