初接触Oracle数据库,常见问题与解决

刚刚接触Oracle数据库,习惯了容易入手的SQL Server 2005 Manager Studio,对新东西还有些不适宜,左试试,右试试,将自己遇到的一些入门级的问题总结了一下,使用的Oracle版本是10g。

1. 使用cmd登录sqlplus的方法

 

>Sqlplus sys/12345678@ordb1 as sysdba

Ordb1是数据库服务器名称

 

2. 使用oracle的sqlplus登录sqlplus

 

 

 

3. 远程连接Oracle数据库

 

方法一:

1. 打开\network\ADMIN\tnsnames.ora文件; //这里记录了一个连接名称所对应的服务器IP、端口号等信息

2. 在其中复制修改增加如下代码:

ORCL1 =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.102)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = ORCL)

    )

  )

其中,ORCL1即服务器数据库实例名,192.168.1.102即服务器地址,1521即端口,SERVICE_NAME是数据库服务器实例的名称(不是服务器的计算机名称),一般只修改这四个数据即可。

3. 测试:

在命令行输入:ping db服务器,看能否ping通。

在命令行输入:tnsping db实例名,看能否成功连接到数据库。

4. 最后可以通过数据库实例名,用户名,密码访问到数据库了。

方法二:

是使用Oracle的管理配置工具“Net Manager”。

添加服务命名,

 

其实应用这个工具的修改,最后也会被保存进"tnsnames.ora"文件中,同直接操作"tnsnames.ora"文件的效果一样。

 

4. Oracle Enterprise Manager Console配置

 

使用Oracle Enterprise Manager Console前,首先要启动OracleDBConsoleor<数据库实例服务名>windows服务。

如果忘记emURL,可以应用>emca -config dbcontrol db命令进行重新配置;也可以在oracle\product\10.2.0\db_1\install目录上,打开:portlist.ini 文件进行查看。

 

5. 创建用户,分配权限

 

方法一:

登录em(enterprise manager control,如http://192.168.1.65:5500/em),在其中进行用户的创建于配置;

方法二:

应用SQL语句,如

CREATE USER "TESTUSER1" PROFILE "DEFAULT" IDENTIFIED BY "*******" ACCOUNT UNLOCK
GRANT "CONNECT" TO "TESTUSER1"

 

6. 忘记用户名、密码

 

在服务器登录,

>sqlplus / as sysdbaCONN SYS/PASS_WORD AS SYSDBA;

使用如下语句修改用户的密码(除SYSSYSTEMSYSTEMSYS可使用对方的权限执行ALTER进行修改),

   ALTER USER <usernameIDENTIFIED BY <new pass>;

如果SYSSYSTEM的密码都忘记的话,可应用ORAPWD.EXE工具修改密码。指令如下,

Orapwd file=<文件路径+文件名> password=<新密码>,

其中file的位置是保存密码的文件,如\oracle\product\10.2.0\db_1\database\PWDordb1.ora,文件名由“PWD+数据库服务名”组成。密码文件的位置在ORACLE_HOME目录下的\database目录下。

这个密码是修改sys用户的密码。除syssystem其他用户的密码不会改变。

 

7. Oracle的日志

 

\oracle\product\10.2.0\admin\ordb1\bdump,记录了重作日志的转换,数据库启动和关闭,数据库结构的改变,回退段的修改,死锁,内部错误等信息。

 

8. 同时执行多条sql语句

 

方法一:

用命令执行SQL文件,即把多条SQL语句写入在一个SQL文件中,如在D盘根目录下有一个a.sql文件,a.sql内容如下:

insert into table values(....);

insert into table values(....);

insert into table values(....);

insert into table values(....);

我们可以用CMD命令下登录sqlplus,登录成功后输入:@d:\a.sql;即可。

方法二:

Toad中,输入多条SQL语句后,点击左上角工具栏中的“Execute as script”。

 

9. 备份、还原数据库

 

方法一:

应用em(enterprise manager console)

在需要进行主机身份认证时,需要在之前做如下操作,

管理工具>本地安全策略>本地策略>用户权限分配>作为批处理作业登录,将操作系统用户添加进去即可,之后就可以使用操作系统用户进行登录了。

方法二,应用exp, imp

cmd下载,输入exp,登录后,可以根据提示进行备份;

备份后,应用imp,可以对数据库进行恢复;

登录时,用户名sys as sysdba。备份数据库表行数据时,注意每个表的前缀,及前缀.表名称。

方法三,冷备份

关闭数据库服务后,将控制文件,数据文件,日志文件进行备份,默认情况下,这些文件保存在一个目录下,如D:\oracle\product\10.2.0\oradata\ordb1

参考资料,《数据库备份与恢复》,http://v.blog.sohu.com/u/vw/2102943

 

10. SqlPlus操作数据库后,进行提交的语句

 

Commit;

 

11. 将数据库实例从一台电脑移动到另一台电脑

 

使用冷备份后恢复的方式实现。

目标如果是,将Oracle数据库实例从主机A移动到主机B

1)在主机B上,建立与主机A上数据库实例名称相同的数据库实例;

2)关闭主机AB上的所有Oracle服务;

3)从主机A复制Oracle数据库实例的控制文件、数据文件、日志文件到主机B上,默认情况下这些文件会被保存在同一目录下,为$oracleRoot\oradata\<数据库服务名>

4)启动主机B上的oracle服务;

5)完成。

原文地址:https://www.cnblogs.com/linc09/p/1513519.html