1. Requête
1. Interrogez l'utilisation de l'espace table Oracle
sélectionnez b.file_id ID de fichier,
b.tablespace_name Espace table,
b.file_name Nom physique du fichier,
b.bytes Nombre total d'octets,
(b.bytes-sum(nvl(a.bytes,0))) Utilisé,
sum(nvl(a.bytes,0)) Restant,
sum(nvl( a. bytes,0))/(b.bytes)*100 Pourcentage restant
de dba_free_space a,dba_data_files b
où a.file_id=b.file_id
groupe par b.tablespace_name,b.file_name, b. file_id,b.bytes
Trier par b.tablespace_name
2. Interrogez l'espace de table par défaut et l'espace de table temporaire des utilisateurs du système Oracle
sélectionnez default_tablespace,temporary_tablespace from dba_users
3. Interrogez une seule table Utilisation sélectionnez segment_name, octets de dba_segments où segment_name = 'RE_STDEVT_FACT_DAY' et propriétaire = USER
RE_STDEVT_FACT_DAY est le nom de la table que vous souhaitez interroger
4 Interrogez les trente principales tailles d'utilisation de toutes les tables utilisateur
select. * from (sélectionnez segment_name,bytes from dba_segments où propriétaire = USER order by bytes desc ) où rownum <= 30
5 Interrogez l'utilisation de l'espace table par défaut de l'utilisateur actuel
select tablespacename,sum(totalContent ), sum(usecontent),sum(sparecontent),avg(sparepercent)
from
(
SELECT b.file_id comme identifiant,b.tablespace_name comme tablespacename,b.bytes comme totalContent,(b.bytes -sum (nvl(a.bytes,0))) comme contenu d'utilisation, somme(nvl(a.bytes,0)) comme contenu de rechange, somme(nvl(a.bytes,0))/(b.bytes)*100 comme pourcentage de réserve
FROM dba_free_space a,dba_data_files b
WHERE a.file_id=b.file_id et b.tablespace_name = (sélectionnez default_tablespace parmi dba_users où username = user)
groupez par b.tablespace_name,b.file_name,b .file_id ,b.bytes
)
GROUP BY tablespacename
6. Interrogez les tables de l'espace de table utilisateur
select * from user_tables
============== = ================================================== = ==================
1. Créer un espace table
CREATE TABLESPACE test
DATAFILE 'c:/oracle/oradata/db/test01.dbf' SIZE 50M
UNIFORM SIZE 1M; #La taille de la zone spécifiée est de 128 Ko Si elle n'est pas spécifiée, la taille par défaut est de 64 Ko
ou
CREATE TABLESPACE test
DATAFILE 'c:/oracle/oradata/db. / test01.dbf' SIZE 50M
ÉTENDUE MINIMALE 50K GESTION DE L'ÉTENDUE LOCAL
STOCKAGE PAR DÉFAUT (INITIAL 50K NEXT 50K MAXEXTENTS 100 PCTINCREASE 0
Vous pouvez afficher les informations de l'espace table nouvellement créé à partir de dba_tablespaces <🎜); >II, Créer un espace table UNDO
CREATE UNDO TABLESPACE test_undo
DATAFILE 'c:/oracle/oradata/db/test_undo.dbf' SIZE 50M
L'ÉTENDUE de l'espace table UNDO est gérée localement et est créée lorsque Seules les clauses DATAFILE et EXTENT MANAGEMENT peuvent être utilisées dans les instructions SQL.
ORACLE stipule qu'un seul espace de table de restauration peut être attribué à la base de données à tout moment, c'est-à-dire que plusieurs espaces de table de restauration peuvent exister dans une instance, mais un seul peut être actif. Vous pouvez utiliser la commande ALTER SYSTEM pour basculer vers un espace table restauré.
SQL> ALTER SYSTEM SET UNDO_TABLESPACE = test_undo;
3. Créez un espace table temporaire
CREATE TEMPORARY TABLESPACE test_temp
TEMPFILE '/oracle/oradata/db/test_temp.dbf' SIZE 50M
Afficher l'espace de table temporaire par défaut actuel du système
sélectionnez * depuis dba_properties où nom_propriété comme 'DEFAULT%'
Modifiez l'espace de table temporaire par défaut du système
alter l'espace de table temporaire par défaut de la base de données test_temp
4.
1. Mettez l'espace table hors ligne
Test ALTER TABLESPACE HORS LIGNE ;
Si le fichier de données est accidentellement supprimé, vous devez disposer de l'option RÉCUPÉRER
Test de jeu ALTER TABLESPACE POUR RÉCUPÉRER ; Utilisez l'espace table en ligne
ALTER TABLESPACE test ONLINE;
3. Mettez le fichier de données hors ligne
ALTER DATABASE DATAFILE 3 OFFLINE;4.
5. Rendre l'espace table en lecture seule
ALTER TABLESPACE test READ ONLY;
6. Rendre l'espace table lisible et inscriptible
ALTER TABLESPACE test READ WRITE
5. space
Test DROP TABLESPACE INCL ING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;
DROP TABLESPACE nom de l'espace table [INCL ING CONTENTS [AND DATAFILES] [CASCADE CONSTRAINTS]]
1.
2. AND La clause DATAFILES est utilisée pour supprimer les fichiers de données
3 La clause CASCADE CONSTRAINTS est utilisée pour supprimer toutes les contraintes d'intégrité référentielle
6. de l'espace table et du fichier auquel il appartient
select tablespace_name, file_id, file_name,
round(bytes/(1024*1024),0) total_space
from dba_data_files
order by tablespace_name
1. Ajoutez un fichier de données
ALTER TABLESPACE test
ADD DATAFILE '/oracle/oradata/db/test02.dbf' SIZE 1000M
2. Augmentez manuellement la taille du fichier de données
ALTER DATABASE DATAFILE 'c : /oracle/oradata/db/test01.dbf'
RESIZE 100M
3. Configurez le fichier de données pour qu'il se développe automatiquement
ALTER DATABASE DATAFILE 'c:/oracle/oradata/db/test01.dbf'
AUTOEXTEND ON NEXT 100M
MAXSIZE 200M
Après le réglage, vous pouvez afficher les informations sur l'espace table de dba_tablespace et les informations du fichier de données correspondant à partir de v$datafile
========== =================================================== ======================
créer un tablespace scgl
fichier de données 'E:ORACLEPROD T10.1.0ORADATAORCLscgl2.dbf'
taille 50m
extension automatique sur les
50 m suivants, taille maximale 20480 m
gestion de l'étendue locale ; extension automatique sur les
50 m suivants, taille maximale 20480m
gestion de l'étendue locale
créer un scgl utilisateur identifié par qwer1234
espace de table par défaut scgl
espace de table temporaire scgl_temp;
fichier temporaire 'E:ORACLEPROD T10.1.0ORADATAORCLuser_ temp .dbf'
créer un espace de table temporaire scgl_temp
fichier temporaire 'E:ORACLEPROD T10.1.0ORADATAORCLscgl_temp.dbf'
taille 50m
extension automatique sur les
50 m suivants, taille maximale 20480 m
gestion de l'étendue locale ;
accorder la connexion, la ressource, le dba à scgl ;
oracle crée un espace table. L'utilisateur SYS se connecte en tant que DBA sous CMD :
Entrez sqlplus. /nolog dans CMD
puis
conn / as sysdba
//Créer un espace de table temporaire
créer un espace de table temporaire user_temp
tempfile 'D:oracleoradataOracle9iuser_temp.dbf'
taille 50m
extension automatique sur les
50 m suivants, taille maximale 20 480 m
gestion de l'étendue locale ;
//Créer un espace de table de données
créer un espace de table test_data
journalisation
fichier de données 'D:oracleoradataOracle9iuser_data.dbf'
taille 50 m
extension automatique sur
50 m suivants taille maximale 20480m
gestion de l'étendue locale
//Créer un utilisateur et spécifier un espace table
créer un nom d'utilisateur identifié par un mot de passe
espace de table par défaut user_data
espace de table temporaire user_temp;
Utilisation de l'espace table de requête
SELECT UPPER(F.TABLESPACE_NAME) "Nom de l'espace table",
D.TOT_GROOTTE_MB "Taille de l'espace table (M)",
D.TOT_GROOTTE_MB - F.TOTAL_BYTES "Espace utilisé (M)",
TO_CHAR (ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') || '%' "taux d'utilisation",
F.TOTAL_BYTES "espace libre (M)",
F.MAX_BYTES "Bloc maximum (M)"
FROM (SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES) / (1024 * 1024), 2 ) TOTAL_BYTES,
ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
FROM SYS.DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F,
(SELECT DD.TABLESPACE_NAME,
ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
FROM SYS.DBA_DATA_FILES DD
GROUP BY DD.TABLESPACE_NAME) D
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
ORDER BY 1
Requête de l'espace libre de l'espace table
sélectionnez tablespace_name,
count(*) as extends,
round(sum(bytes) / 1024/1024, 2) as MB,
sum (blocs) en tant que blocs
from dba_free_space
group by tablespace_name
--Requête de la capacité totale de l'espace table
sélectionnez tablespace_name, sum(bytes) / 1024 / 1024 en Mo
from dba_data_files
regrouper par tablespace_name ;
Requête de l'utilisation de l'espace dans la table
sélectionnez total.tablespace_name,
round(total.MB, 2) comme Total_MB,
round(total.MB - free.MB, 2 ) comme Used_MB,
round((1 - free.MB / total.MB) * 100, 2) || '%' comme Used_Pct
from (sélectionnez tablespace_name, sum(bytes) / 1024/1024 comme Mo
de dba_free_space
groupe par tablespace_name ) gratuit,
(sélectionnez tablespace_name, somme(octets) / 1024/1024 en Mo
de dba_data_files
groupe par tablespace_name) total
où gratuit. nom_espace_table = total.nom_espace_table;
-- --------------------------------------- ----------- --------------------------------------- ----------- -----------------------
1. Créer un tablespace : créer le fichier de données de test du tablespace '/u01/ test.dbf' taille 10M taille uniforme 128k
#La taille de la zone spécifiée est de 128k et la taille du bloc est de 8K par défaut
#Big file tablespace create bigfile tablespace big_tbs datafile '/u01/big_tbs.dbf ' taille 100G
2.建非标准表afficher le paramètre db modifier le système définir db_2k_cache_size=10M créer le fichier de données de test d'espace de table '/u01/test.dbf' taille 10M taille de bloc 2K taille uniforme 128k
#常见错误
SQL> modifier l'ensemble système db_2k_cache_size=2M ; alter system set db_2k_cache_size=2M ERREUR à la ligne 1 : ORA-02097 : le paramètre ne peut pas être modifié car la valeur spécifiée n'est pas valide ORA-00384 : Mémoire insuffisante pour augmenter le cache
#解决
SQL> modifier l'ensemble système sga_max_size=400M scope=spfile ; SQL> arrêt immédiat ; SQL> démarrage SQL> modifier l'ensemble système db_2k_cache_size=10M ; Système modifié.
3.查看区大小与块大小#区大小 conn y / 123 créer une table t (i numéro) test d'espace de table ; Insérez dans les valeurs t (10) sélectionnez bytes/1024 à partir des segments utilisateur où segment_name=upper('t');
#块大小 Afficher le bloc de paramètres (默认64K)
#非标准表空间的blocksize SQL> sélectionnez * dans v$dbfile ; SQL> sélectionnez le nom, block_size, statut dans v$datafile ; SQL> sélectionnez block_size dans v$datafile où file#=14 ;
4.删除表空间test de suppression du tablespace incluant le contenu et les fichiers de données
5.查表空间 :#查数据文件 select * from v$dbfile ; #所有表空间 select * from v$tablespace;
#表空间的数据文件 sélectionnez nom_fichier, nom_espace_table dans dba_data_files ;
6.建立annuler表空间créer un espace de table d'annulation undotbs01 fichier de données '/u01/undotbs01.dbf' taille 5M ;
#切换到新建的undo表空间 modifier l'ensemble système undo_tablespace=undotbs01;
7.建立临时表空间créer un tablespace temporaire temp_data fichier temporaire '/u01/temp.db' taille 5M ; créer un espace de table temporaire bigfile bigtem tempfile '/u01/bigtemp.db' taille 5M ;
8.改变表空间状态
(0.)查看状态
#表空间状态 select tablespace_name,block_size,status from dba_tablespaces ;
#数据文件状态 sélectionnez le nom, la taille du bloc et le statut dans le fichier de données v$ ;
(1.)表空间脱机alter tablespace test hors ligne
#如果意外删除了数据文件 modifier le test d'espace de table hors ligne pour récupérer
(2.)表空间联机alter tablespace test en ligne
(3 .)数据文件脱机select * from v$dbfile; modifier le fichier de données 3 de la base de données hors ligne
(4.)数据文件联机récupérer le fichier de données 3 ; modifier le fichier de données de la base de données 3 en ligne ;
(5.)使表空间只读alter tablespace test read only
(6.)使表空间可读写alter tablespace test read write;
9. nom_espacetable ; #三种扩展方法
1.alter test d'espace de table ajouter un fichier de données '/u01/test02.dbf' taille 10 M (自动加一个datafile)
2.alter fichier de données de base de données '/u01/test.dbf' redimensionner 20 M ;
3.alter le fichier de données de base de données '/u01/test.dbf' s'étend automatiquement sur les 10 M suivants, taille maximale 1G ;
#设定后查看表空间信息
sélectionnez a.tablespace_name,a.bytes total,b.bytes utilisés,c.bytes libres,(b.bytes*100)/a.bytes "% utilisé", (c.bytes*100)/a.bytes "% free" de sys.sm$ts_avail a,sys.sm$ts_used b,sys.sm$ts_free c où a.tablespace_name=b.tablespace_name et a.tablespace_name=c .nom_espacetable ; > /test.dbf';
#open状态
SQL>alter tablespace test hors ligne ; SQL>déplacement de l'hôte /u01/test.dbf /u01/oracle/test.dbf; SQL>alter tablespace test renommer le fichier de données '/u01/test.dbf' en '/u01/oracle/test.dbf'; SQL> modifier le test de l'espace de table hors ligne ;
#mount状态 SQL>arrêt immédiat ; SQL>montage de démarrage SQL>déplacement de l'hôte /u01/test.dbf /u01/oracle/test.dbf; SQL> modifier le nom du fichier de base de données '/u01/test.dbf' en '/u01/oracle/test.dbf';
11.表空间和数据文件常用的数据字典与动态性能视图v$dbfile v$datafile dba_segments user_segments dba_data_files v$tablespace dba_tablespaces
--查询表空间使用情况
SÉLECTIONNEZ LE HAUT (F. TABLESPACE_NAME) "表空间名",
D.TOT_GROOTTE_MB "表空间大小(M)",
D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",
TO_CHAR(ROUND(( D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') || '%' "使用比",
F.TOTAL_BYTES "空闲空间(M)",
F.MAX_BYTES "最大块(M)"
FROM (SELECT TABLESPACE_NAME,
ROUND(SUM( BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
FROM SYS.DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F,
(SELECT DD.TABLESPACE_NAME,
ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
FROM SYS.DBA_DATA_FILES DD
GROUP BY DD.TABLESPACE_NAME) D
WHERE D .TABLESPACE_NAME = F.TABLESPACE_NAME
ORDER BY 1
--查询表空间的espace libre
sélectionnez tablespace_name,
count(*) au fur et à mesure,
arrondi (somme (octets) / 1024 / 1024, 2) en Mo,
somme (blocs) en blocs
de dba_free_space
groupe par tablespace_name ;
--查询表空间的总容量
sélectionnez tablespace_name, somme (octets) / 1024/1024 en Mo
à partir de dba_data_files
groupez par tablespace_name ;
--查询表空间使用率
sélectionnez total.tablespace_name,
round(total.MB, 2) comme Total_MB,
round(total.MB - free.MB, 2) comme Used_MB,
tour((1 - free.MB / total.MB) * 100, 2) || '%' comme Used_Pct
from (sélectionnez tablespace_name, sum(bytes) / 1024 / 1024 en Mo
from dba_free_space
groupe par tablespace_name) gratuit,
(sélectionnez tablespace_name, sum(bytes) / 1024 / 1024 en Mo
à partir de dba_data_files
groupe par tablespace_name) total
où free.tablespace_name = total.tablespace_name ;
//给用户授予权限
accorder la connexion, la ressource au nom d'utilisateur ;
//以后以该用户登录,创建的任何数据库对象都属于user_temp 和user_data表空间,
这就不用在每创建一个对象给其指定表空间了
撤权:
révoquer 权限... de 用户名 ;
删除用户命令
drop user user_name cascade ;
建立表空间
CREATE TABLESPACE data01
DATAFILE '/oracle/oradata/db/DATA01.dbf' TAILLE 500M
TAILLE UNIFORME 128k ; #指定区尺寸为128k,如不指定,区尺寸默认为64k
删除表空间
DROP TABLESPACE data01 INCL ING CONTENTS AND DATAFILES ;
一、建立表空间
CREATE TABLESPACE data01
DATAFILE '/oracle/oradata/db/DATA01.dbf' TAILLE 500M
TAILLE UNIFORME 128 Ko ; #指定区尺寸为128k,如不指定,区尺寸默认为64k
二、建立UNDO表空间
CREATE UNDO TABLESPACE UNDOTBS02
DATAFILE '/oracle /oradata/db/UNDOTBS02.dbf' TAILLE 50M
#注意:在OPEN状态下某些时刻只能用一个UNDO表空间,如果要用新建的表空间,必须切换到该表空Exemple :
ALTER SYSTEM SET undo_tablespace=UNDOTBS02;
三、建立临时表空间
CREATE TEMPORARY TABLESPACE temp_data
TEMPFILE '/oracle/oradata/db/TEMP_DATA.dbf' SIZE 50M
四、改变表空间状态
1.使表空间脱机
Jeu ALTER TABLESPACE HORS LIGNE ;
如果是意外删除了数据文件,则必须带有RECOVER选项
Jeu ALTER TABLESPACE HORS LIGNE POUR RÉCUPÉRER ;
2.使表空间联机
Jeu ALTER TABLESPACE EN LIGNE ;
3.使数据文件脱机
ALTER DATABASE DATAFILE 3 HORS LIGNE ;
4.使数据文件联机
ALTER DATABASE DATAFILE 3 ONLINE ;
5.使表空间只读
Jeu ALTER TABLESPACE LECTURE SEULE ;
6.使表空间可读写
ALTER TABLESPACE jeu READ WRITE ;
五、删除表空间
DROP TABLESPACE data01 INCL ING CONTENUS ET FICHIERS DE DONNÉES ;
六、扩展表空间
select tablespace_name, file_id,
round(bytes/(1024*10 24),0) espace_total
from dba_data_files
order by tablespace_name ;
1.增加数据文件
Jeu ALTER TABLESPACE
AJOUTER UN FICHIER DE DONNÉES '/oracle/oradata/db/GAME02.dbf' TAILLE 1000M ;
2.手动增加数据文件尺寸
ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf'
RESIZE 4000M ;
3.设定数据文件自动扩展
ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf
AUTOEXTEND ON NEXT 100M
MAXSIZE 10000M ;
设定后查看表空间信息
SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES UTILISÉS, C.BYTES GRATUITS,
(B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"
FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C
WHERE A. TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE