1.数据库介绍
1.数据库介绍
什么是数据库?
数据库是为了实现一定的目的按某种规则组织起来的数据的集合, 简单的说,数据库就是存储数据的库.
举个例子来说明这个问题:每个人都有很多亲戚和朋友,为了保持与他们的联系,
我们常常用一个笔记本将他们的姓名、地址、电话等信息都记录下来,
这样要査谁的电话或地址就很方便了。
这个“通讯录”就是一个最简单的“数据库”,每个人的姓名、地址、电话等信息就是这个数据库中的“数据”。
我们可以在笔记本这个“数据库”中添加新朋友的个人信息,也可以由于某个朋友的电话变动而修改他的电话号码这个“数据”。
不过说到底,我们使用笔记本这个“数据库”还是为了能随时査到某位亲戚或朋友的地址、邮编或电话号码这些“数据”。
数据库是干什么用的?
存储和管理数据,便于程序开发。
oracle简介:
Oracle是殷墟(yīn Xu)出土的甲骨文(oracle bone inscriptions)的英文翻译的第一个单词。
Oracle公司成立与1977年,总部位于美国加州;
Oracle数据库是Oracle(中文名称叫甲骨文)公司的核心产品,Oracle数据库是一个适合于大中型企业的数据库管理系统。在所有的数据库管理系统中(比如:微软的SQL Server,IBM的DB2等),Oracle的主要用户涉及面非常广,包括: 银行、电信、移动通信、航空、保险、金融、电子商务和跨国公司等。
Oracle数据库的一些版本有:Oracle7、Oracle8i、Oracle9i,Oracle10g到Oracle11g,Oracle12c, 各个版本之间的操作存在一定的差别,但是操作oracle数据库都使用的是标准的SQL语句,因此对于各个版本的差别不大。
2008年1月16日 收购bea,目的是为了得到weblogic(web服务器的框架,免费的对应的tomcat)。
2008年1月16日 sun公司收购了mysql 。
2009年4月20日 oracle收购了sun 。
常见的数据库有哪些?
1.oracle公司的oracle数据库
2.IBM公司的DB2数据库
3.Informix公司的Informix数据库
4.sysbase公司的sysbase数据库
5.Microsoft公司的SQL Server
6.oracle的MySQL数据库(开始属于mysql公司,后来mysql被sun收购,sun又被oracle收购)
7.MongoDB数据库
1.Oracle的体系结构
Oracle服务器:是一个数据管理系统(RDBMS),它提供开放的、全面的、近乎完整的信息管理。由1个数据库和一个(或多个)实例组成。数据库位于硬盘上,实例(可以理解为进程)位于内存中(Redis在内存中)。不可以直接打开数据库直接进行操作(不了解格式),即使了解也不安全,只能通过实例去操作。实例=服务+内存。
数据库服务只有启动起来之后才有实例的说法,启动之后才有进程,进程启动之后相当于启动一组服务,服务要占用内存。服务有读写等。
SGA是系统全局区,在更新的时候数据没有提交前先保存在这里,数据提交之后(箱单与把数据写到磁盘中,不可回滚)
PGA是程序全局区,用来处理客户端的请求,服务端在虚拟机。客户端提交了数据会提到PGA里,然后再把数据存入SGA,如果要提交,会将其写到磁盘上,没有提交会保存在SGA中。
1.1 表空间和数据文件
逻辑概念:表空间是由数据文件组成,位于实例上,在内存中。
物理概念:数据文件,在磁盘上(/home/oracle_11/app/oradata/orcl目录中的.DBF文件);一个表空间包含一个或者多个数据文件。
1.2 段、区、块
段存在于表空间中,段是区的集合,区是数据块的集合,数据块会被映射到磁盘块。
图请看讲义部分。
1.3 DBA
数据库管理员(Database Administrator,简称DBA),是从事管理和维护数据库管理系统(DBMS)的相关工作人员的统称,属于运维工程师的一个分支,主要负责业务数据库从设计、测试到部署交付的全生命周期管理。DBA的核心目标是保证数据库管理系统的稳定性、安全性、完整性和高性能。从时间开销上看:安装占用6%,创建和配置占用12%,装载和存档数据占6%,软件维护占6%,管理数据库系统占55%,可见,管理数据库系统占用了大部分的时间开销。
1.4 如何启动数据库服务
Windows启动oracle数据库服务:
启动服务:services.msc,找到下列两个服务,并启动。
OracleServiceORCL: oracle数据库服务系统
home1TNSListene: 监听服务,用于远程连接的侦听
注意:若把数据库默认设置为自启动,则开机时间会延长。
Linux启动oracle数据库服务步骤(oracle数据库系统安装到linux系统上)
1.执行sqlplus / as sysdba或sqlplus sys/sys as sysdba进入到命令行界面
2.执行startup启动数据库服务
3.执行exit退出sqlplus命令行界面
4.执行lsnrctl start启动监听服务
注意:通过远程客户端连接oracle服务端必须要启动监听服务,否则客户端连接不上。
启动oracle服务和连接oracle数据库
windows下的oracle的启动:
启动OracleServiceORCL
启动home1TNSListener
在CentOS上用户切换命令用su进行实现,命令如下:
su - 用户 或 su 用户
那么两者有什么区别呢?
su-命令是切换到用户并且返回到用户的home目录下
su命令是不改变当前目录状态下切换到用户
如在oracle数据库服务器中root切换到oracle用户,直接输入su oracle,用户切换到oracle用户,但目录状态与root用户一致。
linux下启动oracle数据库:
使用linux的oracle用户登陆:
sqlplus sys/sys as sysdba
sqlplus / as sysdba //需要在家目录下使用
SQL> startup ---启动数据库服务
SQL> shutdown immediate ----关闭数据库服务
启动监听服务:
lsnrctl start
linux下停止oracle数据库:
停止监听服务:
lsnrctl stop
使用sqlplus登陆oracle数据库:
普通用户登陆: sqlplus scott/tiger@192.168.10.145/orcl //服务端可以这样写
sys用户登陆: sqlplus sys/sys as sysdba
解锁用户:alter user scott account unlock;
加锁用户:alter user scott account lock;
修改用户密码: password scott
alter user scott identified by xxxxx;
查看当前的语言环境:
select userenv('language') from dual;
LINUX要用Oracle用户登录 sqlplus / as sysdba或sqlplus sys/sys as sysdba
[oracle@oracle ~]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Sun Nov 26 05:23:23 2023
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
启动
SQL> startup //Oracle命令行界面
ORA-01081: cannot start already-running ORACLE - shut it down first
退出
SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
退出后启动监听和关闭监听
[oracle@oracle ~]$ lsnrctl start
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 26-NOV-2023 05:26:54
Copyright (c) 1991, 2019, Oracle. All rights reserved.
Starting /u01/app/oracle/product/19.3/dbhome_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 19.0.0.0.0 - Production
System parameter file is /u01/app/oracle/product/19.3/dbhome_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date 26-NOV-2023 05:26:56
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/19.3/dbhome_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully
[oracle@oracle ~]$ lsnrctl stop
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 26-NOV-2023 05:29:29
Copyright (c) 1991, 2019, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle)(PORT=1521)))
The command completed successfully
[oracle@oracle ~]$
1.5 如何登陆数据库服务
1.在本机登陆:
- 普通用户身份登陆
sqlplus ↙ 用户名 ↙ 密码 ↙
sqlplus 用户名/密码,如sqlplus scott/tiger
- 以管理员身份登陆
sqlplus / as sysdba(此处不用输入密码,在安装的时候已经输入密码)
sqlplus sys/sys as sysdba
2.通过网络使用客户端远程登陆
远程通过网络登陆数据库需要安装oracle客户端软件,并进行配置才能使用,可通过使用net manager进行配置,配置完成之后可以使用连接字符串进行登陆,连接字符串中包含了数据库服务的IP地址和端口,以及实例名。
注意:安装oracle客户端的时候,安装路径中不能出现中文和空格,安装的时候选择管理员模式。
D:\oracle\app\HGUANG\product\11.2.0\client_1\network\admin\tnsnames.ora,下面是经过Net Manager进行配置后得到的一个文件内容:
客户端安装完成之后进行远程登陆之前最好先进行测试:
首先测试网络是否是通的: ping IP,然后tnsping IP 或者 tnsping oracle_orcl。
- 普通用户登陆
sqlplus 用户名/密码@连接字符串,如sqlplus scott/tiger@oracle_orcl
管理员用户登陆
sqlplus sys/sys@oracle_orcl as sysdba
此外:还可以执行: sqlplus scott/tiger@//IP地址/实例名进行登陆。
使用scott用户或者sys用户登陆完之后,可以使用show user测试一下,如果显示用户名就表明已经登陆成功了,或者是执行select * from tab;进行一次查询,有结果显示就表名已经登陆成功了。
-
解锁用户:alter user scott account unlock (管理员身份登陆,给scott用户解锁。用户默认锁定)
-
锁定用户:alter user scott account lock,(必须用管理员用户登陆)
-
修改用户密码:alter user scott identified by 新密码 (管理员身份登陆,给scott用户修改密码)
-
查看当前语言环境:select userenv('language') from dual;
1.6 贯穿这门课程的方案
scott用户的emp表,dept表和salgrade表。