find . -type d -exec echo mkdir -p {} \;
или сразу выполняем команду создания:
find . -type d -exec mkdir -p <место копирования>{} \;
find . -type d -exec echo mkdir -p {} \;
find . -type d -exec mkdir -p <место копирования>{} \;
SQL> select CHILD# "cCHILD"
, ADDR "sADDR"
, GETS "sGETS"
, MISSES "sMISSES"
, SLEEPS "sSLEEPS"
from v$latch_children
where name = 'cache buffers chains'
order by 5, 1, 2, 3;
column segment_name format a35
select /*+ RULE */
e.owner ||'.'|| e.segment_name segment_name,
e.extent_id extent#,
x.dbablk - e.block_id + 1 block#,
x.tch,
l.child#
from
sys.v$latch_children l,
sys.x$bh x,
sys.dba_extents e
where
x.hladdr = '&ADDR' and
e.file_id = x.file# and
x.hladdr = l.addr and
x.dbablk between e.block_id and e.block_id + e.blocks -1
order by x.tch desc ;
Example of the output :
SEGMENT_NAME EXTENT# BLOCK# TCH CHILD#
-------------------------------- ------------ ------------ ------ ----------
SCOTT.EMP_PK 5 474 17 7,668
SCOTT.EMP 1 449 2 7,668
#!/usr/bin/perl
use Net::SMTP;
my $ServerName = "smtp.mail.com"; # адрес smtp
my $RealNameFrom = "Oramain Server";
my $MailFrom = "sender\@domain.com";
my $RealNameTo = "Klim Samgin";
my $MailTo = "vpupkin\@microsoft.com";
#my $MailSubject = "Sudbject";
my $MailSubject = $ARGV[0];
$smtp = Net::SMTP->new($ServerName);
die "Couldn't connect to server" unless $smtp;
print $ARGV[1];
$smtp->mail( $MailFrom );
$smtp->to( $MailTo );
$smtp->data();
$smtp->datasend("To: $RealNameTo <$MailTo>\n");
$smtp->datasend("From: $RealNameFrom <$MailFrom>\n");
$smtp->datasend("Subject: $MailSubject\n\n");
while (defined($line = )) {
$smtp->datasend("$line");
}
$smtp->dataend();
$smtp->quit();
#cat >> /etc/init.d/oracle
#!/sbin/sh
ORACLE_HOME=`cat /var/opt/oracle/oratab|grep ^$ORACLE_SID:|cut -f2 -d':'`
case $1 in
start)
su - oracle -c $ORACLE_HOME/bin/dbstart
su - oracle -c "$ORACLE_HOME/bin/lsnrctl start"
exit 0
;;
stop)
su - oracle -c "$ORACLE_HOME/bin/lsnrctl stop"
su - oracle -c $ORACLE_HOME/bin/dbshut
;;
esac
ctrl^d
#for solaris:
#ln -s ../init.d/oracle /etc/rc3.d/S95oracle
#ln -s ../init.d/oracle /etc/rc0.d/K15oracle
#chmod 0755 /etc/init.d/oracle
Для версии 10 g нет необходимости в строках с lsnrctl, т.к. dbshut\dbstart
сам запускает\останавливает прослушиватель. Но есть Bug 4509652, по которому надо делать так:
dbstart $ORACLE_HOME
#!/bin/ksh
# First, we must set the environment . . . .
ORACLE_SID=$ORACLE_SID
export ORACLE_SID
ORACLE_HOME=`cat /etc/oratab|grep ^$ORACLE_SID:|cut -f2 -d':'`
####for solaris#####
#ORACLE_HOME=`cat /var/opt/oracle/oratab|grep ^$ORACLE_SID:|cut -f2 -d':'`
export ORACLE_HOME
PATH=$ORACLE_HOME/bin:$PATH
export PATH
echo "Please enter the number of seconds between snapshots."
read elapsed
$ORACLE_HOME/bin/sqlplus perfstat/perfstat<10);
exit
EOF
sleep $elapsed
$ORACLE_HOME/bin/sqlplus perfstat/perfstat<10);
select
name,
snap_id,
to_char(snap_time,' dd Mon YYYY HH24:mi:ss')
from
stats\$snapshot,
v\$database
where
snap_id > (select max(snap_id)-2 from stats\$snapshot)
;
for i in `ls -la | awk '{if ($6=="Nov" && $7=="11") print $9}'`; do rm -rf $i; donels -la | awk '{if ($6=="Nov" && $7=="11") print "rm -f " $9}'
alter session set tracefile_identifier='my_trace_id';
SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-00704: bootstrap process failure
ORA-00704: bootstrap process failure
ORA-00600: internal error code, arguments: [4000], [2], [], [], [], [], [], []
o_O
SELECT /*+ ORDERED */
W1 .SID WAITING_SESSION,
H1.SID HOLDING_SESSION,
W.KGLLKTYPE LOCK_OR_PIN,
W.KGLLKHDL ADDRESS,
DECODE (H.KGLLKMOD,
0, 'NONE',
1, 'NULL',
2, 'SHARE',
3, 'EXCLUSIVE',
'UNKNOWN')
MODE_HELD,
DECODE (W.KGLLKREQ,
0, 'NONE',
1, 'NULL',
2, 'SHARE',
3, 'EXCLUSIVE',
'UNKNOWN')
MODE_REQUESTED
FROM DBA_KGLLOCK W,
DBA_KGLLOCK H,
V$SESSION W1,
V$SESSION H1
WHERE ( ( (H.KGLLKMOD != 0)
AND (H.KGLLKMOD != 1)
AND ( (H.KGLLKREQ = 0) OR (H.KGLLKREQ = 1)))
AND ( ( (W.KGLLKMOD = 0) OR (W.KGLLKMOD = 1))
AND ( (W.KGLLKREQ != 0) AND (W.KGLLKREQ != 1))))
AND W.KGLLKTYPE = H.KGLLKTYPE
AND W.KGLLKHDL = H.KGLLKHDL
AND W.KGLLKUSE = W1.SADDR
AND H.KGLLKUSE = H1.SADDR;
update t1 set value='blablabla';Но встречаются поля с unique constraint. Например, номера телефонов клиентов. Для них надо генерировать случайные данные. В таких случаях использую следующее:
DECLARE
CURSOR smsid
IS
SELECT ID
FROM sms;
randnum VARCHAR2 (20);
updated_rowcnt INTEGER;
BEGIN
FOR smsidrec IN smsid
LOOP
updated_rowcnt := 0;
WHILE updated_rowcnt = 0
LOOP
randnum := TO_CHAR (round(DBMS_RANDOM.VALUE (1000000, 999999999),0));
UPDATE sms
SET c_phone = randnum
WHERE ID = smsidrec.id AND NOT EXISTS (SELECT 1
FROM sms
WHERE c_phone = randnum);
updated_rowcnt := SQL%ROWCOUNT;
END LOOP;
END LOOP;
END;
/