- 进入AWS的market选择Oracle版本,本例中选择的是Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production,启动EC2实例。
- 进入实例,会提示是否安装Oracle的database ,选择Y,下一步命名Oracle的实例名(自定义),本例中用的ORA。Next会提示输入各sysdba的用户密码,建议设置同一个,直到安装进度提示。等待15分钟左右,会安装好。
- 安装好Oracle的实例后操作两步就可以成功了,配置监听文件,恢复数据。
- 配置监听文件,监听文件默认是放在/u01/app/oracle/product/11.2.0/db1/network/admin/samples,如图所示:
默认的是不能远程访问的,我们得重新编写两个文件 listener.ora和tnsnames.ora,文件位置在samples的上级目录,/u01/app/oracle/product/11.2.0/db1/network/admin/。Oracle默认会去这下找。
1)Listener.ora内容如下:
#listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db1/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ORA)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db1)
(SID_NAME = ORA)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.168.1.23)(PORT = 1521))
)
)
如图所示:
- tnsnames.ora的内容如下:
#tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
ORA =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.168.1.23)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORA)
)
)
LISTENER_ORA =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.168.1.23)(PORT = 1521))
)
如图所示:
3.查看当前监听状态,监听只能oracle用户组下查看,先切换oracle用户,su - oracle
然后查看监听状态 lsnrctl status。如图所示:
4.停止监听 lsnrctl stop
5.启动监听 lsnrctl start
6.监听文件是否配置成功,可以通过 sqlplus system/password@实例名来验证。
7.监听配置成功,连接实例没有问题,基本上就完成Oracle的配置了,下面介绍数据恢复,由于数据库服务器没有开通外网,只能通过应用服务器把备份文件传输到Oracle服务器上来恢复。
如图所示:
在使用SCP时碰到的几个问题点,给大家分享下:
http://blog.csdn.net/rznice/article/details/49360893
1)用scp的时候遇到的问题:
Permission denied (publickey,gssapi-with-mic).
lost connection
解决办法:
将目标服务器中 /etc/ssh/sshd_config 中的一个参数改一下:
PasswordAuthentication no中的“no”改为yes
重启服务
service sshd restart
2)scp出现 Permission denied, please try again 的解决办法
解决方法:
修改root的ssh权限,即修改 /etc/ssh/sshd_config文件中 PermitRootLogin no / without-password 改为 PermitRootLogin yes
重启服务
service sshd restart
- 创建用户与临时表空间,给用户授权。
-- carlcare表空间 测试用 临时表空间
create temporary tablespace user_temp
tempfile 'd:\oracle\mes\mes.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
数据表空间
create tablespace mes
logging
datafile 'd:\oracle\mes\mes_data.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
创建用户
create user pldbdba identified by mes123456
default tablespace mes
temporary tablespace user_temp;
授权
grant connect,resource,dba to pldbdba;
- 恢复到数据,把备份好的dmp文件改为oracle用户组,chown oracle:oinstall XXX.dmp。
根据以往经验,恢复数据之前最好把数据库字符集修改下。
修改方法:
***查看oracle数据库的字符集
select userenv('language') from dual
其中NLS_CHARACTERSET 为server端字符集
将数据库启动到RESTRICTED模式下做字符集更改:
SQL> conn /as sysdba
Connected.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
Database mounted.
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
System altered.
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
System altered.
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
System altered.
SQL> alter database open;
Database altered.
SQL> ALTER DATABASE CHARACTER SET AL32UTF8; ZHS16GBK
ALTER DATABASE CHARACTER SET AL32UTF8
*
ERROR at line 1:
ORA-12712: new character set must be a superset of old character set
提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改:
SQL> ALTER DATABASE character set INTERNAL_USE AL32UTF8;
Database altered.
完成字集的修改后,就可以进行最后一步了,数据恢复。
数据恢复必须以system用户
imp system/manager file=XXX.dmp full=y ignore=y
到这里,所有的操作都完成了,你可以尝试下远程连接。