前情提要:
生产环境数据库数据过多,为减少数据库空间,将一些历史查询数据放到另一个数据库中,由于一个服务没法根据不同情况访问不同数据库,因此新搭建一套后台服务,该服务指向新的数据库
1 基于linux环境的oracle安装
1.1 环境准备
- 新建一个oinstall组
groupadd oinstall
- 新建一个dba组
groupadd dba
- 在/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选项,则可以重复使用其他用户的标识号。
- 为oracle用户设置密码
passwd oracle
- 建立目录,修改权限,修改所有者
创建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
-
打开oracle图形化安装界面
- 在安装目录下(/home/oracle/database)执行runInstaller:sh ./runInstaller
- 无法通过xshell直接打开图形化界面:
因为xshell本身不带unix的图形化功能,应该下载xmanager(第一次需人为启动),然后export DISPLAY=本机ip:0.0,最后在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
-
图形界面流程
选next
选next
选next
选next
选next
选next
选next
选next
选yes
选next
选next
如果只有warning没有failed,ignore All然后选next
选yes
选install
- 配置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
- 配置监听:netca
选next
选next
选next
选next
选next - 建立实例
dbca
选next
选next
选next
选next
选next
选next
选next
选next
选next
选next
选next
选next
选next
选next - 启动数据库与监听
--数据库
sqlplus / as sysdba; startup
--监听
lsnrctl start
- 建立特定表空间,表空间的位置决定数据文件位置,需要放在大点的空间里,可以不跟oracle客户端一个路径
--1.建立
sqlplus / as sysdba;
create tablespace data_spc01 datafile '/home/oracle/oradata/fcrhost/fcr01.dbf' size 10240m autoextend on next 1024M maxsize 20480M;
--2.删除表空间,同时删除表空间所包括的数据文件从而释放硬盘空间
DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;
--3.表空间已满,为表空间增加数据文件
ALTER TABLESPACE tablespace_name ADD DATAFILE '/home/oracle/oradata/fcrhost/fcr02.dbf' SIZE 10240M autoextend on next 1000M maxsize 20480M;
- 建立用户,导库,授权等一系列操作
--删除用户
drop user $1 cascade;
--创建用户,并为其设置密码和表空间
create user $1 identified by $1 default tablespace data_spc01;
--为该用户赋予dba权限
grant dba to $1;
--建立directory:
sqlplus / as sysdba;
create directory mydp as '/home/oracle/mydp';
--导入数据库(重复导入一个数据库时,或某个表的它的表和索引所在的表空间不同时,需要加入transfor参数)
impdp \'/ as sysdba\' directory=mydpwsh dumpfile=c50hst_20170301-wsh.dmp schemas=c50hst,c50brn content=all version=compatible logfile=import.log transform=OID:N transform=segment_attributes:n
--如果导入一半掉了,需要重新导入
impdp \'/ as sysdba\' attach=job名
--修改用户密码
alter user $1 identified by $1;
--赋权限
sqlplus -S sys/oracle as sysdba <<EOF
alt