oracle笔记1

0.sql

SQL(structured query language)结构查询语句

数据查询:select

DML(data manipulation language) : insert , update , delete…

DDL(data definition language) : create , alter , drop…

事务控制: commit , rollback , savepoint…

/*用第三方工具连接数据库之后,在一个事务没有被提交之前,然后关闭该工具,相当于关闭了这个会话,这时默认执行的是回滚处理*/

/*在没有被提交之前,处于悬浮状态,这时你的会话显示已经更改,但是再开辟一个会话,查看的话,没有修改*/

 

1.数据库历史

  三个阶段:第一阶段:层次数据库;第二阶段:网状数据库;第三阶段:关系数据库。

2.oracle 数据库

  前身:sdl

  oraclejava写的

3.oracle内部运行原理:

    Oracle数据库区(黄色表示区域)是三种文件的名字:数据文件(data files);控制文件(control files) ;重做日志文件(redo log files)

    Redo log files主要是用来恢复

    Oracle三种事务处理:提交(commit);回滚(rollback)savepoint

    Oracle 实例区(红色表示区域):数据缓冲区;共享池;java池;日志区;若干个进程区

    实例中的进程控制是否写数据。

    Oracle 启动时会启用Parameter file(参数文件) Password file

    用户进程通过服务进程来控制实例区和数据库区

    实例是通过参数文件来建立的。一个实例一般是只针对一个数据库,除非是做集群的时候,一般情况下实例名和数据库名是一样的。

    Oracle 启动时,会启动两个服务,一个是其本身的服务,还有一个是监听服务。Sqlplus登录时不开监听服务,用第三方软件或者是其他PC登录的时候会开监听服务。

4.如何登录别人的数据库

    C:\oracle\product\10.2.0\db_2\NETWORK\ADMIN这个目录下

    首先,备份tnsnames.ora文件到任意目录(目的是以后改回来的时候方便);

    第二步,修改源文件下的tnsname.ora文件;

    源文件代码如下:

   

# tnsnames.ora Network Configuration File: C:\oracle\product\10.2.0\db_2\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

LC =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ttc-c7c24ccf287)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = lc)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )


       修改部分如下:

LC =/*LC为数据库名,可以在原文件下直接更改,就直接更改用户名*/
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ttc-c7c24ccf287/*这个是你要连接的用户名的ip,可以更改*/)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = lc/*这个登陆该数据库的时候的用户名*/)
    )
  )

       修改之后的文件保存好之后就直接更改了。
5.通过修改tnsname.ora文件来创建多个数据库,用来直接访问别人的数据库。

       tnsname.ora文件源代码如下:

# tnsnames.ora Network Configuration File: C:\oracle\product\10.2.0\db_2\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

LC =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ttc-c7c24ccf287)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = lc)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )


      修改之后的文件如下:

# tnsnames.ora Network Configuration File: C:\oracle\product\10.2.0\db_2\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

LC =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ttc-c7c24ccf287)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = lc)
    )
  )

LC1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.34.117)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

LC2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.34.118)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )


       修改之后的文件增加了两个数据库LC1和LC2,LC1指向的数据库是ip地址为10.10.34.117的PC上服务名称为orcl的数据库。同理,可以理解LC2数据库。

       当你用诸如PLSQL Developer的第三方软件登陆LC1或者LC2 的数据库时,用户名和密码要用相应的对方PC上登陆数据库时候的用户名和密码。

       使用sqlplus连接LC1数据库:sqlplus sys/lc@LC1 as sysdba(LC1数据库登陆名为sys,密码为lc)

       使用sqlplus连接LC1数据库普通用户:sqlplus scott/tiger@LC1 .

 

6.数据库文件存放位置

      数据库文件存放在C:\oracle\product\10.2.0\oradata这个文件夹下,这个文件夹下一个文件夹就代表一个数据库,每一个数据库都包含三个物理文件,这三个物理文件就存放在该数据库文件夹下面。

      数据库参数文件存放在:C:\oracle\product\10.2.0\db_2\database这个文件夹下,initlc这个是启动参数文件,PWDlc这个是密码参数文件。

 

7.oracle启动的三个阶段

       三个阶段:nomountmountopen.

       --将数据库启动到nomount状态下:startup nomount

       该过程主要读参数文件(C:\oracle\product\10.2.0\db_2\database这个文件夹下initlc文件),分配内存,启动后台进程,初始化部分动态性能视图。

       --将数据库启动到mount状态:alter database mount

       该过程是读参数文件中描述的控制文件(initlc文件中的内容是一个重定向,重定向到一个数据库中的控制文件中),校验控制文件的正确性,将控制文件的内容读到内存中,mount是挂接的意思,是操作系统中的概念。一旦mount之后,就是将一个没有意义的实例和一个数据库发生了联系,mount是读控制文件,读控制文件中的数据文件和日志文件。

       --打开数据库:alter database open

       该过程读控制文件中描述的数据文件,验证数据文件的一致性,如果不一致,使用日志文件将数据库文件恢复到一致的状态。

 

8.数据库关闭的四种方式

       --shutdown normal

       正常关闭数据库,命令执行后实例不允许其他用户再登陆到实例中。等已连接的所有用户都退出后才关闭数据库。

       安全关闭,但会等待很长时间。

       --shutdown immediate

       终止所有用户查询操作,回滚所有用户的更新操作,切断所有用户连接。

       --shutdown transational

       不允许其他用户再登陆数据库,等待当前事务执行结束后,再执行shutdown immediate操作。

       --shutdown abort

       不用任何等待直接关闭,关闭的终极手段。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值