Oracle数据库基础(安装、基础命令)
以下都是以Oracle 11g为例,我也不知道别的版本有没有区别 其实顺了一遍还是有点乱,之后如果发现错误会回来改的!
一、安装
win下安装 Oracle 11g 教程:
https://www.hangge.com/blog/cache/detail_2817.html
win10安装报错:https://blog.youkuaiyun.com/W_Y_L_/article/details/82702444
注意安装包下载好 一定要全解压到一个文件里面,不然安装时候会报错说少文件
字符集
选择字符集时一定要注意,不一定选Unicode,ZHS16GBK也可以
选好字符集后如果显示有问题还需要修改系统环境变量
https://blog.youkuaiyun.com/weixin_30919235/article/details/96855227
ps.如果字符集错了,导入备份时候会报这个错
A-02374: conversion error loading table "schema名"."表名"
ORA-12899: value too large for column xxxx (actual: 60, maximum: 50)
ORA-02372: data for row: xxxx : 0X'xxxxxxxxxxxxxxxxxxxx'
连接使用工具 PL/SQL Developer
PL/SQL Developer下载安装见以下博客
https://blog.youkuaiyun.com/qq_34602804/article/details/114218054
如果需要远程连接客户端的话,照着这篇博文https://blog.youkuaiyun.com/weixin_42637495/article/details/106601011
1.修改安装目录
app/……/product/11.2.0/dbhome_1/network/admin/
下的listener.ora
和tnsnames.ora
的localhost
2.开启防火墙对应端口
关闭Oracle服务
要在Windows的服务中关闭Oracle实例服务
+Oracle的监听服务
https://www.php.cn/oracle/451001.html
(打码那部分就是Oracle实例的名字)
像是做删除实例之类的操作
二、Oracle基础概念
可以再看看:https://blog.youkuaiyun.com/wanghai__/article/details/4683983
Oracle是一种关系型的数据库。
关系型的数据库都有这几个概念:database,schema,table,user
我在知乎看到一个大佬的比喻,很形象
https://www.zhihu.com/question/20355738/answer/230743815
如果把
database
看作是一个仓库,仓库很多房间(schema),一个schema
代表一个房间,table
可以看作是每个房间中的储物柜,user
是每个schema的主人,有操作数据库中每个房间的权利,就是说每个数据库映射user有每个schema(房间)的钥匙。
oracle一个服务就是一个库,库下面是表空间,一个表空间可以有几个不同的数据文件,然后就是表。oracle里的表,每个用户有个缺省的表空间,也就是说这个用户建的表会在这个表空间里面:
a用户建的表ta,用a用户登录可以直接select * from ta
这样访问,而其他用户(有权限的)要用select * from a.ta
这样来访问。
1.database
Oracle在数据库层面,有几个难分区的概念:数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名、服务名
。
在安装11g的时候,如果选择了“创建和配置数据库”
,典型安装配置时会让我们填一个全局数据库名:
这篇博客这样解释Oracle9i https://www.cnblogs.com/ccption/p/3664201.html
数据库名
就是数据库的名称标识,如myOracle, 这种叫法一般只适用于单机;
全局数据库名
就是数据库处于一个网络中的名称标识。
比如数据库宿主机的域为mydomain, 则数据库的全局数据库名为myOracle.mydomain; 实际上myOracle和myOracle.mydomain两者指的是同一个数据库. 即:全局数据库名 = 数据库名+"."+网络位置(宿主机所在的域)
再联系这一篇博文:https://cloud.tencent.com/developer/article/1683759
所以我觉得在Oracle11g中,这里的全局数据库名其实是 创建的实例的名字,也是数据库名
再来写一下我现在对这几个名词的理解:
1) 数据库名
DB_NAME
数据库名是在安装数据库、创建新的数据库、创建数据库控制文件、修改数据结构、备份与恢复数据库时都需要使用到的
查询当前数据名
方法一:select name from v$database;
方法二:show parameter db_name
方法三:查看参数文件。
2) 实例名 & ORACLE_SID
instance_name
在一般情况下,数据库名和实例名是一对一的关系,但如果在oracle并行服务器架构(即oracle实时应用集群)中,