Escolar Documentos
Profissional Documentos
Cultura Documentos
Hugo Torralbo
hugo@nervinformatica.com.br
Esta obra est licenciada sob a licena
Creative Commons Atribuio-SemDerivados 3.0 Brasil.
Para ver uma cpia desta licena, visite
http://creativecommons.org/licenses/by-nd/3.0/br/.
Aprendizado
Viso: 5%
Audio: 8%
Viso e Audio: 12%
Execuo: 22%
Execuo com erro: 42%
Instrutor
- Team Leader for Performance Testing - IBM
- DBA IBM
- Bacharelado em Sistemas de Informao Centro Universitrio Fundao Santo Andr
(2007)
Empresas
http://www.ibm.com.br
http://www.nervinformatica.com.br
Redes Sociais
http://twitter.com/nervinformatica
https://facebook.com/nervinformaticaltda
http://facebook.com/hugotorralbo
http://br.linkedin.com/in/hugotorralbo/
Instrutor
Certificaes
Alunos
- Se apresente.
- Trabalha, estuda?
- Comente sua experincia com TI.
Agenda
Introduo
Linux
Virtualizao
Windows Server
Redes
Storage
SQL Server
MySQL
Oracle
Formao DBAs
Graduo / Ps-graduao / Doutorado.
Certificao.
Ingls.
Mltiplos SGBD.
Experincia: o ovo e a galinha.
Jnior?
10
10
Bancos de Dados
11
11
Linux
12
12
13
13
14
14
15
15
http://upload.wikimedia.org/wikipedia/commons/e/ed/LinuxDistroTimeline.png
16
16
17
17
18
18
19
19
20
20
21
21
22
22
23
23
24
24
25
25
26
26
27
27
28
28
29
29
30
30
31
31
32
32
33
33
34
34
35
35
36
36
37
37
38
38
39
39
40
40
41
41
42
42
43
43
44
44
45
45
46
46
47
47
48
48
49
49
cat install.log
cat install.log.new > install.log
cat install.log
grep xorg install.log
grep xorg install.log | grep fonts
grep xorg install.log | grep -v fonts
# watch ls -lh
# vi install.log
ESC e depois I
ESC e depois x
ESC e depois dd
ESC e depois :w
ESC e depois :q
# clear
O que as setas para cima e para baixo fazem?
50
50
51
51
52
52
53
53
54
54
Prtica: Services
Verifique se o Apache est configurado para iniciar automaticamente.
#
#
#
#
#
chkconfig
chkconfig
chkconfig
chkconfig
chkconfig
| grep httpd
--level 35 httpd on
| grep httpd
httpd on
service
firefox
service
service
firefox
httpd status
localhost
httpd start
httpd status
localhost
55
55
whoami
id
ls -lh /root/
cat /etc/passwd
cat /etc/group
56
56
57
57
Shell
Com o usurio oracle, crie um script Bash.
$ vi teste.sh
<ESC>
Digite: i
ls lh
<ESC>
Digite: :w
<ESC>
Digite: :q
Execute-o:
$ sh teste.sh
Adicione a seguinte linha ao incio deste arquivo:
#!/bin/bash
58
58
Shell
Execute-o diretamente desta vez.
$ /home/oracle/teste.sh
O que aconteceu?
Corrija e reexcute.
$ ls -lh
$ chmod +x /home/oracle/teste.sh
$ ls -lh
$ /home/oracle/teste.sh
Proteja o script contra alteraes.
$ chmod -w /home/oracle/teste.sh
Como retirar esta proteo?
Acrescente mais comandos ao script.
59
59
60
60
Prtica: Processos
Verifique os processos em execuo.
$ ps
$ ps a
$ ps aux
$ ps aux | grep gnome
$ pstree
Qual a diferena entre estes comandos?
Finalize o seu processo bash.
$ ps a
$ kill 2120
$ kill -9 2120
O que aconteceu?
61
61
Prtica: Processos
Verifique seus caminhos de executveis.
$ vi teste.sh &
$ fg
O que aconteceu?
$ vi teste.sh &
$ vi teste02.sh &
$ fg
$ fg
O que aconteceu?
62
62
Prtica: Desempenho
$ free
$ vmstat
$ vmstat 2
$ vmstat 5
$ iostat
$ iostat 2
$ iostat 5
$ top
O que estes comandos fazem?
63
63
Prtica: Logs
Verifique os logs mais atuais, e que informao eles tm.
$
$
#
#
ls
su
ls
ls
-lh /var/log
-lh /var/log
-lhtr /var/log
64
64
65
65
66
66
Virtualizao
67
67
68
68
69
69
70
70
71
71
72
72
73
73
74
74
75
75
76
76
77
77
78
78
79
79
80
80
81
81
82
82
83
83
84
84
85
85
86
86
87
87
88
88
Windows Server
89
89
90
90
91
91
92
92
93
93
94
94
95
95
96
96
97
97
98
98
99
99
100 100
101 101
102 102
103 103
104 104
105 105
106 106
107 107
108 108
109 109
110 110
111 111
112 112
113 113
114 114
115 115
116 116
117 117
Prtica: Services
118 118
Prtica: Services
119 119
Prtica: Services
120 120
Prtica: CMD
121 121
Prtica: CMD
C:\Users\Administrator> cd ..
C:\Users> cd Adm<TAB>
C:\Users\Administrator> cd \
C:\> mkdir teste
C:\> dir
C:\> cd teste
C:\teste> notepad teste.txt
Escreva algo no arquivo e salve-o.
C:\teste> copy teste.txt teste02.txt
C:\teste> more teste02.txt
C:\teste> type teste02.txt
C:\teste> cd ..
C:\> dir
C:\> xcopy teste
C:\> dir
C:\> del teste.txt
C:\> help
122 122
Prtica: CMD
C:\Users\Administrator> NET STOP Spooler
C:\Users\Administrator> NET START Spooler
C:\Users\Administrator> HOSTNAME
C:\Users\Administrator> TASKLIST
C:\Users\Administrator> DISKPART
DISKPART> LIST
DISKPART> LIST DISK
DISKPART> EXIT
123 123
124 124
125 125
126 126
127 127
128 128
129 129
130 130
Redes
131 131
Teoria: TCP/IP
132 132
Teoria: TCP/IP
IP
Mask
Gateway
DNS
Qual seu IP / Mask / Gateway / DNS?
133 133
Teoria: TCP/IP
DHCP
Routing
Firewall
Proxy
IDS
IPS
VLAN
134 134
136 136
137 137
Prtica: Xserver
Execute logon remoto no computador do seu vizinho.
# ssh -CX root@192.168.0.102
# firefox
138 138
139 139
140 140
141 141
142 142
Storage
143 143
Teoria: Produtos
IBM
DS8000 Series
- DS8100
- DS8300
- DS8700
- DS8800
- DS8870
XIV
SONAS
Storwize V7000
Storwize V7000 Unified
Storwize V3700
DS3500 Series
- DS3512/DS3524
DCS3700
DS5000 Series
- DS5020
- DS5100
- DS5300
N Series
144 144
Teoria: Produtos
NetApp
FAS/V-Series Storage Systems
- FAS6200 Series
- FAS6000 Series
- FAS3200 Series
- FAS3100 Series
- FAS2200 Series
- V-Series
E-Series Storage Technology
- E5400
- E2600
Oracle / Sun
Sun ZFS Storage 7120
Sun ZFS Storage 7320
Sun ZFS Storage 7420
Pillar Axiom 600 Storage System
Pillar Axiom Software
145 145
Teoria: Tecnologias
- IDE, ATA, SATA, SCSI
- SSD, Cache
- RAID (0, 1, 5 [50, 60], 1+0)
- SAN, NAS
- Cluster Filesystems
- ISCSI,
- Fiber Channel (FC)
- ATA-over-Ethernet (AoE)
- Fibre Channel over Ethernet (FCoE)
- Fibre Channel over IP (FCIP)
- HyperSCSI SCSI over Ethernet frames instead of IP (as iSCSI is)
- ISCSI Extensions for RDMA (iSER)
- Internet Fibre Channel Protocol (iFCP)
- Internet Storage Name Service (iSNS)
- The SCST Linux SCSI target software stack
- Linux LIO Unified Target software stack
- Service Location Protocol
146 146
*(rw,sync,no_wdelay,insecure_locks,no_root_squash)
147 147
148 148
149 149
150
151 151
152 152
153 153
SQL Server
154 154
1989
1991
1993
1995
1996
1998
2000
2003
2005
2008
2010
2012
155 155
156 156
157 157
158 158
159 159
160 160
161 161
162 162
163 163
164 164
165 165
166 166
167 167
168 168
169 169
170 170
171 171
172 172
173 173
174 174
175 175
176 176
177 177
178 178
179 179
180 180
Prtica: Servios
181 181
Prtica: Conexo
Inicie o Microsoft SQL Server Management Studio (SSMS).
Efetue logon com SQL Server Authentication, e com o usurio sa.
O que deve ser colocado em Server Name?
Como voc pode se conectar no SQL Server do vizinho?
Clique em New Query.
Na tela que se abrir, digite sp_who, e depois pressione F5.
Inicie o CMD.
C:\Users\Administrator> sqlcmd -e
1> sp_who
2> go
Como voc pode se conectar no SQL Server com sa via sqlcmd?
Como voc pode se conectar no SQL Server do vizinho via sqlcmd?
C:\Users\Administrator> sqlcmd -?
182 182
Teoria: Arquitetura
183 183
184 184
185 185
186 186
187 187
188 188
189 189
190 190
191 191
192 192
193 193
194 194
195 195
196 196
197 197
198 198
Prtica: Segurana
User
Login
Roles
199 199
200 200
201 201
Teoria: Procedures
Criao
USE Nerv;
GO
CREATE PROCEDURE uspGetEmployeeName
@EmployeeID int
AS
SET NOCOUNT ON;
SELECT Name FROM Employee WHERE EmployeeID =
@EmployeeID;
GO
Execuo
USE Nerv;
EXECUTE uspGetEmployeeName @EmployeeID = 1
GO
202 202
Teoria: Functions
Criao
USE Nerv;
GO
CREATE FUNCTION NumberOfEmployees (@DeptID int)
RETURNS @TotalOfEmployees int
AS
BEGIN
DECLARE @TotalOfEmployees AS int ;
SELECT @TotalOfEmployees = SUM(EmployeeID)
FROM Employee
WHERE DeptID = @DeptID;
RETURN @TotalOfEmployees;
END;
GO
Execuo
203 203
Teoria: Triggers
Criao
USE Nerv;
CREATE TRIGGER Reminder
ON Dept
AFTER INSERT, UPDATE
AS RAISERROR ('Notify Manager', 16, 10);
GO
204 204
205 205
206 206
207 207
208 208
Prtica: Backup
Clique com o boto direito no banco de dados de testes, e execute um
backup.
Execute o backup tambm via linha de comando.
BACKUP DATABASE Nerv TO DISK = 'C:\temp\Nerv.BAK'
GO
BACKUP LOG Nerv TO DISK = 'C:\temp\Nerv.TRN'
GO
209 209
210 210
211 211
212 212
213 213
214 214
215 215
MySQL
216 216
217 217
Prtica: Instalao
yum
Download de Pacotes RPMs
218 218
# cat /var/log/mysqld.log
# cat /etc/my.cnf
219 219
220 220
Teoria: Engines
MyISAM
InnoDB
Memory
CSV
Archive
Blackhole
Merge
Federated
Example
221 221
222 222
= 4096
sort_buffer = 2M
join_buffer_size = 2M
223 223
224 224
225 225
18M
5.0M
5.0M
4.0K
0
4.0K
4.0K
6
112
112
4.0K
Jan
Jan
Jan
Jan
Jan
Jan
Jan
Jan
Jan
Jan
Jan
24
24
24
24
24
24
24
24
24
24
24
14:45
14:45
14:45
14:43
14:45
15:12
14:43
14:45
14:43
14:43
14:43
ibdata1
ib_logfile0
ib_logfile1
mysql
mysql.sock
nerv
performance_schema
Proni-PC.localdomain.pid
RPM_UPGRADE_HISTORY
RPM_UPGRADE_MARKER-LAST
test
# ls -lh /var/lib/mysql/nerv/
total 4.0K
-rw-rw----. 1 mysql mysql 65 Jan 24 15:12 db.opt
226 226
227 227
Prtica: Tabelas
mysql> use nerv;
mysql> CREATE TABLE teste (coluna1 int, coluna2 char(50),
coluna3 varchar(255)) Engine=InnoDB;
mysql> show tables;
O que a criao desta tabela alterou nas estruturas fsicas?
mysql> CREATE TABLE teste2 (coluna1 int, coluna2 char(50),
coluna3 varchar(255)) Engine=MyISAM;
mysql> show tables;
O que a criao desta tabela alterou nas estruturas fsicas?
228 228
Prtica: Objetos
Recrie seu modelo de dados do SQL Server no MySQL.
229 229
230 230
231 231
http://dev.mysql.com/doc/refman/5.6/en/general-thread-states.html
232 232
233 233
234 234
235 235
Prtica: mysqldump
Execute um backup via mysqldump.
$ mysqldump -u root -pNerv2013 nerv > nerv.sql
Edite o arquivo gerado.
O que ele contm?
Como utilizar este backup?
Quais suas desvantagens?
236 236
Prtica: INFORMATION_SCHEMA
Verifique as tabelas do banco de dados INFORMATION_SCHEMA.
Quantas tabelas voc possui em todo o MySQL?
E em seu banco de dados?
237 237
238 238
239 239
240 240
241 241
Oracle
242 242
243 243
244 244
Prtica: Instalao
Instale os pacotes necessrios para o Oracle Database.
# yum -y install binutils
# yum -y install compat-libcap1
# yum -y install compat-libstdc++-33 compat-libstdc++-33.i686
# yum -y install gcc
# yum -y install gcc-c++
# yum -y install glibc glibc.i686
# yum -y install glibc-devel glibc-devel.i686
# yum -y install ksh
# yum -y install libgcc.i686
# yum -y install libgcc
# yum -y install libstdc++ libstdc++.i686
# yum -y install libstdc++-devel libstdc++-devel.i686
# yum -y install libaio libaio.i686 libaio-devel libaio-devel.i686
# yum -y install make
# yum -y install sysstat
# yum -y install elfutils-libelf-devel
# yum -y install unixODBC unixODBC.i686 unixODBC-devel unixODBC-devel.i686
245 245
Prtica: Instalao
Editar o arquivo /etc/sysctl.conf e ACRESCENTAR AO FINAL:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048586
Em seguida, execute:
# sysctl -p
soft
hard
soft
hard
nproc
nproc
nofile
nofile
2047
16384
1024
65536
246 246
Prtica: Instalao
Executar os comandos abaixo.
#
#
#
#
mkdir
mkdir
chown
chmod
-p
-p
-R
-R
/u01/app/oracle/product/11.2.0.3/db_1
/u01/oradata
oracle:oinstall /u01
775 /u01
247 247
Prtica: Instalao
Com o usurio oracle, ACRESCENTAR NO FINAL do arquivo
/home/oracle/.bash_profile as linhas abaixo.
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=nerv01.localdomain
export ORACLE_UNQNAME=ORCL
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.3/db_1
export ORACLE_SID=ORCL
export ORACLE_TERM=xterm
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
248 248
Prtica: Instalao
Execute logon como oracle no ambiente grfico, e descompacte o instalador.
$ unzip -q p10404530_112030_Linux-x86-64_1of7.zip
$ unzip -q p10404530_112030_Linux-x86-64_2of7.zip
Execute o instalador.
$ cd database/
$ ./runInstaller
249 249
Prtica: Instalao
250 250
Prtica: Instalao
251 251
Prtica: Instalao
252 252
Prtica: Instalao
253 253
Prtica: Instalao
254 254
Prtica: Instalao
255 255
Prtica: Instalao
256 256
Prtica: Instalao
257 257
Prtica: Instalao
258 258
Prtica: Instalao
259 259
Prtica: Instalao
260 260
Prtica: Instalao
261 261
Prtica: Instalao
Execute, como root, os scripts indicados nesta tela, e depois clique em OK.
262 262
Prtica: Instalao
263 263
Prtica: Listener
Verifique se seu arquivo /etc/hosts est similar a este.
127.0.0.1
::1
192.168.0.101
localhost.localdomain
localhost6.localdomain6
nerv01.localdomain
localhost
localhost6
nerv01
264 264
Prtica: Listener
265 265
Prtica: Listener
266 266
Prtica: Listener
267 267
Prtica: Listener
268 268
Prtica: Listener
269 269
Prtica: Listener
270 270
Prtica: Listener
271 271
Prtica: Listener
272 272
Prtica: Listener
Verifique o estado o Listener.
$ lsnrctl status
$ lsnrctl stop
$ lsnrctl start
273 273
274 274
275 275
276 276
277 277
278 278
279 279
280 280
281 281
282 282
283 283
284 284
285 285
286 286
287 287
288 288
289 289
290 290
291 291
292 292
293 293
294 294
295 295
296 296
Prtica: SQL*Plus
Execute logon no SQL*Plus via Sistema Operacional.
$ sqlplus / AS SYSDBA
Por que isto funcionou?
Execute logon no SQL*Plus via SQL*Net.
$ sqlplus SYSTEM/Nerv2013@ORCL
Por que isto funcionou?
Como executar logon no computador do vizinho?
297 297
298 298
Comandos
SQL> STARTUP;
SQL> STARTUP NOMOUNT;
SQL> ALTER DATABASE MOUNT;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE OPEN;
SQL> STARTUP RESTRICT;
SQL> STARTUP FORCE;
SQL>
SQL>
SQL>
SQL>
SHUTDOWN
SHUTDOWN
SHUTDOWN
SHUTDOWN
NORMAL;
IMMEDIATE;
TRANSACTIONAL;
ABORT;
299 299
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE NOARCHIVELOG;
ALTER DATABASE OPEN;
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
300 300
301 301
302 302
303 303
304 304
305 305
Prtica:
Tablespaces
Tablespaces
e Datafiles e Datafiles
1 - Criando uma tablespace:
SQL> CREATE TABLESPACE tbs_teste DATAFILE
'/u01/oradata/ORCL/teste01.dbf' SIZE 10M AUTOEXTEND ON SEGMENT
SPACE MANAGEMENT AUTO EXTENT MANAGEMENT LOCAL;
2 - Consultando a tablespace e o datafile criado:
SQL>
SQL>
SQL>
SQL>
306
Prtica:
Tablespaces
Tablespaces
e Datafiles e Datafiles
4 - Reajustando o tamanho de um DATAFILE:
SQL> ALTER DATABASE DATAFILE '/u01/oradata/ORCL/teste_02.dbf'
RESIZE 20M;
5 - Excluindo uma tablespace:
SQL> DROP TABLESPACE TBS_TESTE;
307
Prtica: Objetos
Recrie seu modelo de dados do SQL Server no Oracle.
308 308
309 309
310 310
Prtica:
e privilgios.
UsuriosUsurios
e privilgios
1. Crie um usurio
CREATE USER usuario1 IDENTIFIED BY
123;
311
Prtica:
e privilgios.
UsuriosUsurios
e privilgios
4. Conceda o privilgio de sistema CREATE SESSION para conectar na instncia.
Em seguida, tente se logar novamente no SQL*Plus com o usurio:
SQL> GRANT create session TO usuario1;
5. Voltando no SQL*Plus como SYS, conceda privilgio de leitura, escrita,
excluso e alterao na tabela EMP do usurio SCOTT.
SQL> GRANT insert, delete, update, select ON scott.emp TO
usuario1;
6. Consulte os privilgios concedidos para o USUARIO1.
SQL> SELECT grantee, owner, table_name, privilege, grantor
SQL> FROM dba_tab_privs
SQL> WHERE grantee='USUARIO1'
SQL> AND owner='SCOTT'
SQL> AND table_name='EMP';
312
Prtica:
e privilgios.
UsuriosUsurios
e privilgios
7. Revogue os privilgios concedidos para o USUARIO, na tabela do schema
SCOTT.
SQL> REVOKE delete,insert,update,select ON scott.emp FROM
usuario1;
313
Prtica: V$SESSION_WAIT
Execute novamente o cenrio de Transao e Isolamento, e veja o que h
na V$SESSION_WAIT.
SQL> SELECT SID, EVENT, SECONDS_IN_WAIT FROM V$SESSION_WAIT;
SQL> SELECT SID, EVENT, SECONDS_IN_WAIT FROM V$SESSION_WAIT
WHERE WAIT_CLASS != 'Idle';
Qual a diferena da V$SESSION_WAIT antes, durante e aps a execuo?
314 314
Prtica: V$SESSION
Execute novamente o cenrio de Transao e Isolamento, e veja o que h
na V$SESSION.
SQL> SELECT SID, EVENT, SECONDS_IN_WAIT FROM V$SESSION WAIT;
Qual a diferena da V$SESSION antes, durante e aps a execuo?
Que colunas so importantes da V$SESSION?
315 315
Prtica: V$SQL
Encontre na V$SQL um SQL que voc tenha executado.
SQL> SELECT SQL_ID, SQL_TEXT
SQL> FROM V$SQL
SQL> WHERE SQL_TEXT LIKE '%SELECT FUNC FROM EMP%';
Que colunas so importantes na V$SQL?
316 316
317 317
318 318
319 319
320 320
321 321
322 322
323 323
324 324
E agora?
325 325
Os 7 Passos do Troubleshooting
Passo 0: Acredite.
Passo 1: Reduo.
Passo 2: Isolamento.
Passo 3: Reproduo.
Passo 4: Informao.
Passo 5: Pesquisa.
Passo 6: Correo & Validao.
Passo 7: Documentao.
http://nervinformatica.com.br/blog/2013/01/07/os-7-passos-do-troubleshooting-2/
326 326
327 327
Treinamentos Nerv
- Oracle Performance Diagnostics & Tuning
- Oracle Backup & Recovery
- Oracle RAC
- Oracle Data Guard
328
Vagas
- APInfo
- Ceviu
- Catho
329