Oracle RMAN restore until time script

When you did any mistake on your Oracle database such as drop tables or drop databases, you can recover it from the backup copy and archive log files with “RMAN restore until time script” as following;

 

 

RMAN> shutdown immediate;

database closed
database dismounted
Oracle instance shut down

RMAN> RUN
2> {
3> startup mount;
4> ALLOCATE CHANNEL c1_restore DEVICE TYPE DISK;
5>
6> set until time= “to_date(’23/09/2015 17:10:00′,’dd/mm/yyyy hh24:mi:ss’)”;
7> RESTORE DATABASE;
8> RECOVER DATABASE;
9> RELEASE CHANNEL c1_restore;
10> }

connected to target database (not started)
Oracle instance started
database mounted

Total System Global Area 17771253760 bytes

Fixed Size 2288480 bytes
Variable Size 6777996448 bytes
Database Buffers 10938744832 bytes
Redo Buffers 52224000 bytes

allocated channel: c1_restore
channel c1_restore: SID=263 device type=DISK

executing command: SET until clause

Starting restore at 23-SEP-15

channel c1_restore: starting datafile backup set restore
channel c1_restore: specifying datafile(s) to restore from backup set
channel c1_restore: restoring datafile 00001 to +DATA/limsprod/datafile/system.276.881074097
channel c1_restore: restoring datafile 00002 to +DATA/limsprod/datafile/sysaux.277.881074097
channel c1_restore: restoring datafile 00003 to +DATA/limsprod/datafile/undotbs1.278.881074097
channel c1_restore: restoring datafile 00004 to +DATA/limsprod/datafile/users.279.881074097
channel c1_restore: restoring datafile 00005 to +DATA/limsprod/datafile/lims_archive.286.881076053
channel c1_restore: restoring datafile 00006 to +DATA/limsprod/datafile/lims_base.287.881076073
channel c1_restore: restoring datafile 00007 to +DATA/limsprod/datafile/lims_common.288.881076097
channel c1_restore: restoring datafile 00008 to +DATA/limsprod/datafile/lims_data.289.881076443
channel c1_restore: restoring datafile 00009 to +DATA/limsprod/datafile/lims_data.290.881076535
channel c1_restore: restoring datafile 00010 to +DATA/limsprod/datafile/lims_data.291.881076625
channel c1_restore: restoring datafile 00011 to +DATA/limsprod/datafile/lims_data.292.881076865
channel c1_restore: restoring datafile 00012 to +DATA/limsprod/datafile/lims_data.293.881077055
channel c1_restore: restoring datafile 00013 to +DATA/limsprod/datafile/lims_data.294.881077235
channel c1_restore: restoring datafile 00014 to +DATA/limsprod/datafile/lims_data.295.881077657
channel c1_restore: restoring datafile 00015 to +DATA/limsprod/datafile/lims_data.296.881077735
channel c1_restore: restoring datafile 00016 to +DATA/limsprod/datafile/lims_data.299.881078031
channel c1_restore: restoring datafile 00017 to +DATA/limsprod/datafile/lims_index.300.881078289
channel c1_restore: restoring datafile 00018 to +DATA/limsprod/datafile/lims_index.301.881078439
channel c1_restore: restoring datafile 00019 to +DATA/limsprod/datafile/lims_index.302.881078505
channel c1_restore: restoring datafile 00020 to +DATA/limsprod/datafile/lims_index.303.881078609
channel c1_restore: restoring datafile 00021 to +DATA/limsprod/datafile/lims_index.304.881078723
channel c1_restore: restoring datafile 00022 to +DATA/limsprod/datafile/lims_index.306.881078811
channel c1_restore: restoring datafile 00023 to +DATA/limsprod/datafile/lims_index.308.881078901
channel c1_restore: restoring datafile 00024 to +DATA/limsprod/datafile/lims_index.314.881079053
channel c1_restore: restoring datafile 00025 to +DATA/limsprod/datafile/lims_index.316.881079155
channel c1_restore: restoring datafile 00026 to +DATA/limsprod/datafile/lims_index.324.881079755
channel c1_restore: restoring datafile 00027 to +DATA/limsprod/datafile/lims_index.327.881079851
channel c1_restore: restoring datafile 00028 to +DATA/limsprod/datafile/undotbs1.335.881080165
channel c1_restore: restoring datafile 00029 to +DATA/limsprod/datafile/sysaux.337.883641629
channel c1_restore: reading from backup piece V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_1_891188665
channel c1_restore: piece handle=V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_1_891188665 tag=TAG20150923T162425
channel c1_restore: restored backup piece 1
channel c1_restore: reading from backup piece V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_2_891188665
channel c1_restore: piece handle=V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_2_891188665 tag=TAG20150923T162425
channel c1_restore: restored backup piece 2
channel c1_restore: reading from backup piece V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_3_891188665
channel c1_restore: piece handle=V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_3_891188665 tag=TAG20150923T162425
channel c1_restore: restored backup piece 3
channel c1_restore: reading from backup piece V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_4_891188665
channel c1_restore: piece handle=V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_4_891188665 tag=TAG20150923T162425
channel c1_restore: restored backup piece 4
channel c1_restore: reading from backup piece V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_5_891188665
channel c1_restore: piece handle=V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_5_891188665 tag=TAG20150923T162425
channel c1_restore: restored backup piece 5
channel c1_restore: reading from backup piece V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_6_891188665
channel c1_restore: piece handle=V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_6_891188665 tag=TAG20150923T162425
channel c1_restore: restored backup piece 6
channel c1_restore: reading from backup piece V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_7_891188665
channel c1_restore: piece handle=V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_7_891188665 tag=TAG20150923T162425
channel c1_restore: restored backup piece 7
channel c1_restore: reading from backup piece V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_8_891188665
channel c1_restore: piece handle=V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_8_891188665 tag=TAG20150923T162425
channel c1_restore: restored backup piece 8
channel c1_restore: reading from backup piece V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_9_891188665
channel c1_restore: piece handle=V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_9_891188665 tag=TAG20150923T162425
channel c1_restore: restored backup piece 9
channel c1_restore: reading from backup piece V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_10_891188665
channel c1_restore: piece handle=V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_10_891188665 tag=TAG20150923T162425
channel c1_restore: restored backup piece 10
channel c1_restore: reading from backup piece V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_11_891188665
channel c1_restore: piece handle=V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_11_891188665 tag=TAG20150923T162425
channel c1_restore: restored backup piece 11
channel c1_restore: reading from backup piece V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_12_891188665
channel c1_restore: piece handle=V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_12_891188665 tag=TAG20150923T162425
channel c1_restore: restored backup piece 12
channel c1_restore: reading from backup piece V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_13_891188665
channel c1_restore: piece handle=V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_13_891188665 tag=TAG20150923T162425
channel c1_restore: restored backup piece 13
channel c1_restore: reading from backup piece V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_14_891188665
channel c1_restore: piece handle=V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_14_891188665 tag=TAG20150923T162425
channel c1_restore: restored backup piece 14
channel c1_restore: reading from backup piece V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_15_891188665
channel c1_restore: piece handle=V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_15_891188665 tag=TAG20150923T162425
channel c1_restore: restored backup piece 15
channel c1_restore: reading from backup piece V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_16_891188665
channel c1_restore: piece handle=V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_16_891188665 tag=TAG20150923T162425
channel c1_restore: restored backup piece 16
channel c1_restore: reading from backup piece V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_17_891188665
channel c1_restore: piece handle=V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_17_891188665 tag=TAG20150923T162425
channel c1_restore: restored backup piece 17
channel c1_restore: reading from backup piece V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_18_891188665
channel c1_restore: piece handle=V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_18_891188665 tag=TAG20150923T162425
channel c1_restore: restored backup piece 18
channel c1_restore: reading from backup piece V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_19_891188665
channel c1_restore: piece handle=V:\LIMSPROD\LIMSPROD_FULL_LIMSPROD_G6QHSTDP_19_891188665 tag=TAG20150923T162425
channel c1_restore: restored backup piece 19
channel c1_restore: restore complete, elapsed time: 00:31:19
Finished restore at 23-SEP-15

Starting recover at 23-SEP-15

starting media recovery
media recovery complete, elapsed time: 00:00:10

Finished recover at 23-SEP-15

released channel: c1_restore

RMAN>

PS H:\> sqlplus sys as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Wed Sep 23 19:40:04 2015

Copyright (c) 1982, 2013, Oracle. All rights reserved.

Enter password:

Connected to:
Oracle Database 11g Release 11.2.0.4.0 – 64bit Production
With the Automatic Storage Management option

19:40:15 limsprod> alter database open resetlogs;

Database altered.

Elapsed: 00:00:20.51
19:40:50 limsprod>

 

 

 

The following log is from the alert log of the database while RMAN is recovering the database.

 

 

Wed Sep 23 19:06:32 2015
Shutting down instance (immediate)
Stopping background process SMCO
Shutting down instance: further logons disabled
Stopping background process QMNC
Wed Sep 23 19:06:34 2015
Stopping background process CJQ0
Stopping background process MMNL
Stopping background process MMON
Wed Sep 23 19:06:43 2015
License high water mark = 111
All dispatchers and shared servers shutdown
alter database close
Wed Sep 23 19:06:49 2015
SMON: disabling tx recovery
SMON: disabling cache recovery
Wed Sep 23 19:06:52 2015
NOTE: Deferred communication with ASM instance
NOTE: deferred map free for map id 45
Shutting down archive processes
Archiving is disabled
Wed Sep 23 19:06:52 2015
ARCH shutting down
ARC2: Archival stopped
Wed Sep 23 19:06:52 2015
NOTE: Deferred communication with ASM instance
Wed Sep 23 19:06:52 2015
ARCH shutting down
Wed Sep 23 19:06:52 2015
ARCH shutting down
ARC0: Archival stopped
Wed Sep 23 19:06:52 2015
ARCH shutting down
ARC3: Archival stopped
ARC1: Archival stopped
Thread 1 closed at log sequence 2231
Successful close of redo thread 1
Wed Sep 23 19:06:55 2015
NOTE: Deferred communication with ASM instance
NOTE: deferred map free for map id 3
Wed Sep 23 19:06:59 2015
Completed: alter database close
alter database dismount
Shutting down archive processes
Archiving is disabled
Wed Sep 23 19:06:59 2015
NOTE: Deferred communication with ASM instance
NOTE: deferred map free for map id 2
Completed: alter database dismount
ARCH: Archival disabled due to shutdown: 1089
Shutting down archive processes
Archiving is disabled
Wed Sep 23 19:07:04 2015
NOTE: Database dismounted; ASMB process exiting
ARCH: Archival disabled due to shutdown: 1089
Shutting down archive processes
Archiving is disabled
Wed Sep 23 19:07:05 2015
NOTE: Shutting down MARK background process
Wed Sep 23 19:07:05 2015
Stopping background process VKTM
Wed Sep 23 19:07:10 2015
Instance shutdown complete
Wed Sep 23 19:07:53 2015
Starting ORACLE instance (normal)
LICENSE_MAX_SESSION = 0
LICENSE_SESSIONS_WARNING = 0
Initial number of CPU is 6
Number of processor cores in the system is 6
Number of processor sockets in the system is 2
Picked latch-free SCN scheme 3
Autotune of undo retention is turned on.
IMODE=BR
ILAT =85
LICENSE_MAX_USERS = 0
SYS auditing is disabled
Starting up:
Oracle Database 11g Release 11.2.0.4.0 – 64bit Production.
Windows NT Version V6.1 Service Pack 1
CPU : 6 – type 8664, 6 Physical Cores
Process Affinity : 0x0x0000000000000000
Memory (Avail/Total): Ph:22985M/36863M, Ph+PgF:41931M/73725M
VM name : VMWare Version (6)
Using parameter settings in server-side pfile C:\ORACLE\PRODUCT\11.2.0\DBHOME_1\DATABASE\INITLIMSPROD.ORA
System parameters with non-default values:
processes = 500
sessions = 774
sga_max_size = 17024M
shared_pool_size = 6016M
java_pool_size = 64M
spfile = “+DATA/limsprod/spfilelimsprod.ora”
sga_target = 17024M
memory_target = 18048M
memory_max_target = 18048M
control_files = “+DATA/limsprod/controlfile/current.280.881074207”
db_block_size = 8192
compatible = “11.2.0.4.0”
log_archive_dest_1 = “LOCATION=Z:\oradata\limsprod\arch”
log_archive_format = “ARC%S_%R.%T”
db_create_file_dest = “+DATA”
db_recovery_file_dest = “Z:\oradata\limsprod\fast_recovery_area”
db_recovery_file_dest_size= 4182M
undo_tablespace = “UNDOTBS1”
remote_login_passwordfile= “EXCLUSIVE”
db_domain = “WESTERNFOREST.COM”
dispatchers = “(PROTOCOL=TCP) (SERVICE=LIMSPRODXDB)”
audit_file_dest = “C:\ORACLE\ADMIN\LIMSPROD\ADUMP”
audit_trail = “NONE”
db_name = “LIMSPROD”
open_cursors = 300
pga_aggregate_target = 1000M
optimizer_secure_view_merging= FALSE
diagnostic_dest = “C:\ORACLE”
Wed Sep 23 19:07:54 2015
PMON started with pid=2, OS id=4328
Wed Sep 23 19:07:54 2015
PSP0 started with pid=3, OS id=2820
Wed Sep 23 19:07:55 2015
VKTM started with pid=4, OS id=3084 at elevated priority
VKTM running at (10)millisec precision with DBRM quantum (100)ms
Wed Sep 23 19:07:55 2015
GEN0 started with pid=5, OS id=4556
Wed Sep 23 19:07:55 2015
DIAG started with pid=6, OS id=4856
Wed Sep 23 19:07:55 2015
DBRM started with pid=7, OS id=6032
Wed Sep 23 19:07:55 2015
DIA0 started with pid=8, OS id=6436
Wed Sep 23 19:07:55 2015
MMAN started with pid=9, OS id=3248
Wed Sep 23 19:07:55 2015
DBW0 started with pid=10, OS id=3896
Wed Sep 23 19:07:55 2015
LGWR started with pid=11, OS id=3584
Wed Sep 23 19:07:55 2015
CKPT started with pid=12, OS id=1280
Wed Sep 23 19:07:55 2015
SMON started with pid=13, OS id=6736
Wed Sep 23 19:07:55 2015
RECO started with pid=14, OS id=5536
Wed Sep 23 19:07:55 2015
RBAL started with pid=15, OS id=6316
Wed Sep 23 19:07:55 2015
ASMB started with pid=16, OS id=2604
Wed Sep 23 19:07:55 2015
MMON started with pid=17, OS id=4000
Wed Sep 23 19:07:55 2015
MMNL started with pid=18, OS id=4544
NOTE: initiating MARK startup
Starting background process MARK
Wed Sep 23 19:07:55 2015
MARK started with pid=19, OS id=6328
NOTE: MARK has subscribed
starting up 1 dispatcher(s) for network address ‘(ADDRESS=(PARTIAL=YES)(PROTOCOL=TCP))’…
starting up 1 shared server(s) …
ORACLE_BASE from environment = C:\Oracle
Wed Sep 23 19:07:57 2015
ALTER SYSTEM SET local_listener=’ (ADDRESS=(PROTOCOL=TCP)(HOST=10.102.248.172)(PORT=1521))’ SCOPE=MEMORY SID=’limsprod’;
Wed Sep 23 19:07:58 2015
alter database mount
NOTE: Loaded library: System
SUCCESS: diskgroup DATA was mounted
NOTE: dependency between database LIMSPROD and diskgroup resource ora.DATA.dg is established
Successful mount of redo thread 1, with mount id 1278723982
Database mounted in Exclusive Mode
Lost write protection disabled
Completed: alter database mount
Wed Sep 23 19:18:29 2015
Full restore complete of datafile 3 +DATA/limsprod/datafile/undotbs1.278.881074097. Elapsed time: 0:10:21
checkpoint is 4298719146844
last deallocation scn is 3
Undo Optimization current scn is 4298719137466
Full restore complete of datafile 8 +DATA/limsprod/datafile/lims_data.289.881076443. Elapsed time: 0:10:23
checkpoint is 4298719146844
Full restore complete of datafile 9 +DATA/limsprod/datafile/lims_data.290.881076535. Elapsed time: 0:10:23
checkpoint is 4298719146844
Full restore complete of datafile 10 +DATA/limsprod/datafile/lims_data.291.881076625. Elapsed time: 0:10:27
checkpoint is 4298719146844
Full restore complete of datafile 11 +DATA/limsprod/datafile/lims_data.292.881076865. Elapsed time: 0:10:30
checkpoint is 4298719146844
Wed Sep 23 19:18:43 2015
Full restore complete of datafile 12 +DATA/limsprod/datafile/lims_data.293.881077055. Elapsed time: 0:10:35
checkpoint is 4298719146844
Full restore complete of datafile 13 +DATA/limsprod/datafile/lims_data.294.881077235. Elapsed time: 0:10:39
checkpoint is 4298719146844
Full restore complete of datafile 14 +DATA/limsprod/datafile/lims_data.295.881077657. Elapsed time: 0:10:43
checkpoint is 4298719146844
Wed Sep 23 19:22:59 2015
db_recovery_file_dest_size of 4182 MB is 0.00% used. This is a
user-specified limit on the amount of space that will be used by this
database for recovery-related files, and does not reflect the amount of
space available in the underlying filesystem or ASM diskgroup.
Wed Sep 23 19:28:35 2015
Full restore complete of datafile 15 +DATA/limsprod/datafile/lims_data.296.881077735. Elapsed time: 0:10:06
checkpoint is 4298719146844
Full restore complete of datafile 16 +DATA/limsprod/datafile/lims_data.299.881078031. Elapsed time: 0:10:07
checkpoint is 4298719146844
Full restore complete of datafile 17 +DATA/limsprod/datafile/lims_index.300.881078289. Elapsed time: 0:10:07
checkpoint is 4298719146844
Wed Sep 23 19:28:48 2015
Full restore complete of datafile 18 +DATA/limsprod/datafile/lims_index.301.881078439. Elapsed time: 0:10:13
checkpoint is 4298719146844
Wed Sep 23 19:28:58 2015
Full restore complete of datafile 19 +DATA/limsprod/datafile/lims_index.302.881078505. Elapsed time: 0:10:20
checkpoint is 4298719146844
Full restore complete of datafile 20 +DATA/limsprod/datafile/lims_index.303.881078609. Elapsed time: 0:10:25
checkpoint is 4298719146844
Wed Sep 23 19:29:18 2015
Full restore complete of datafile 21 +DATA/limsprod/datafile/lims_index.304.881078723. Elapsed time: 0:10:31
checkpoint is 4298719146844
Full restore complete of datafile 22 +DATA/limsprod/datafile/lims_index.306.881078811. Elapsed time: 0:10:35
checkpoint is 4298719146844
Wed Sep 23 19:31:37 2015
Full restore complete of datafile 6 +DATA/limsprod/datafile/lims_base.287.881076073. Elapsed time: 0:02:11
checkpoint is 4298719146844
Wed Sep 23 19:33:39 2015
Full restore complete of datafile 7 +DATA/limsprod/datafile/lims_common.288.881076097. Elapsed time: 0:02:02
checkpoint is 4298719146844
Wed Sep 23 19:35:51 2015
Full restore complete of datafile 27 +DATA/limsprod/datafile/lims_index.327.881079851. Elapsed time: 0:02:12
checkpoint is 4298719146844
Wed Sep 23 19:37:06 2015
Full restore complete of datafile 1 +DATA/limsprod/datafile/system.276.881074097. Elapsed time: 0:01:15
checkpoint is 4298719146844
last deallocation scn is 895285
Undo Optimization current scn is 4298719142269
Full restore complete of datafile 4 +DATA/limsprod/datafile/users.279.881074097. Elapsed time: 0:00:03
checkpoint is 4298719146844
last deallocation scn is 3
Full restore complete of datafile 5 +DATA/limsprod/datafile/lims_archive.286.881076053. Elapsed time: 0:00:01
checkpoint is 4298719146844
Wed Sep 23 19:38:28 2015
Full restore complete of datafile 2 +DATA/limsprod/datafile/sysaux.277.881074097. Elapsed time: 0:09:20
checkpoint is 4298719146844
last deallocation scn is 896771
Full restore complete of datafile 29 +DATA/limsprod/datafile/sysaux.337.883641629. Elapsed time: 0:09:10
checkpoint is 4298719146844
Wed Sep 23 19:38:57 2015
Full restore complete of datafile 23 +DATA/limsprod/datafile/lims_index.308.881078901. Elapsed time: 0:10:22
checkpoint is 4298719146844
Full restore complete of datafile 24 +DATA/limsprod/datafile/lims_index.314.881079053. Elapsed time: 0:10:19
checkpoint is 4298719146844
Full restore complete of datafile 25 +DATA/limsprod/datafile/lims_index.316.881079155. Elapsed time: 0:10:19
checkpoint is 4298719146844
Full restore complete of datafile 26 +DATA/limsprod/datafile/lims_index.324.881079755. Elapsed time: 0:10:09
checkpoint is 4298719146844
Wed Sep 23 19:39:27 2015
Full restore complete of datafile 28 +DATA/limsprod/datafile/undotbs1.335.881080165. Elapsed time: 0:10:29
checkpoint is 4298719146844
Undo Optimization current scn is 4298719142501
Wed Sep 23 19:39:29 2015
alter database recover datafile list clear
Completed: alter database recover datafile list clear
alter database recover datafile list
1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 , 20
Completed: alter database recover datafile list
1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 , 20
alter database recover datafile list
21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29
Completed: alter database recover datafile list
21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29
alter database recover if needed
start until time ‘SEP 23 2015 17:10:00’
Media Recovery Start
started logmerger process
Parallel Media Recovery started with 6 slaves
Wed Sep 23 19:39:30 2015
Recovery of Online Redo Log: Thread 1 Group 3 Seq 2229 Reading mem 0
Mem# 0: +DATA/limsprod/onlinelog/group_3.283.881074219
Incomplete Recovery applied until change 4298719150809 time 09/23/2015 17:10:00
Completed: alter database recover if needed
start until time ‘SEP 23 2015 17:10:00’
Wed Sep 23 19:40:14 2015
alter database open
Errors in file C:\ORACLE\diag\rdbms\limsprod\limsprod\trace\limsprod_ora_5844.trc:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
ORA-1589 signalled during: alter database open…
Wed Sep 23 19:40:30 2015
alter database open resetlogs
RESETLOGS after incomplete recovery UNTIL CHANGE 4298719150809
Archived Log entry 2223 added for thread 1 sequence 2231 ID 0x4b9dee9c dest 1:
Resetting resetlogs activation ID 1268641436 (0x4b9dee9c)
Deleted Oracle managed file +DATA/limsprod/onlinelog/group_1.281.881074211
Deleted Oracle managed file +DATA/limsprod/onlinelog/group_2.282.881074215
Deleted Oracle managed file +DATA/limsprod/onlinelog/group_3.283.881074219
Wed Sep 23 19:40:38 2015
Setting recovery target incarnation to 3
Wed Sep 23 19:40:38 2015
Assigning activation ID 1278723982 (0x4c37c78e)
LGWR: STARTING ARCH PROCESSES
Wed Sep 23 19:40:38 2015
ARC0 started with pid=28, OS id=7032
ARC0: Archival started
LGWR: STARTING ARCH PROCESSES COMPLETE
ARC0: STARTING ARCH PROCESSES
Wed Sep 23 19:40:39 2015
ARC1 started with pid=29, OS id=3480
Wed Sep 23 19:40:39 2015
ARC2 started with pid=30, OS id=6808
Wed Sep 23 19:40:39 2015
ARC3 started with pid=31, OS id=5348
ARC1: Archival started
ARC2: Archival started
Thread 1 opened at log sequence 1
Current log# 1 seq# 1 mem# 0: +DATA/limsprod/onlinelog/group_1.281.891200433
Current log# 1 seq# 1 mem# 1: Z:\ORADATA\LIMSPROD\FAST_RECOVERY_AREA\LIMSPROD\ONLINELOG\O1_MF_1_C06RO13Z_.LOG
Successful open of redo thread 1
ARC1: Becoming the ‘no FAL’ ARCH
ARC1: Becoming the ‘no SRL’ ARCH
ARC2: Becoming the heartbeat ARCH
Wed Sep 23 19:40:40 2015
SMON: enabling cache recovery
ARC3: Archival started
Wed Sep 23 19:40:41 2015
[5844] Successfully onlined Undo Tablespace 2.
Undo initialization finished serial:0 start:910193872 end:910194371 diff:499 (4 seconds)
ARC0: STARTING ARCH PROCESSES COMPLETE
Dictionary check beginning
Dictionary check complete
Verifying file header compatibility for 11g tablespace encryption..
Verifying 11g file header compatibility for tablespace encryption completed
SMON: enabling tx recovery
Database Characterset is WE8MSWIN1252
No Resource Manager plan active
replication_dependency_tracking turned off (no async multimaster replication found)
Starting background process QMNC
Wed Sep 23 19:40:44 2015
QMNC started with pid=32, OS id=4444
LOGSTDBY: Validating controlfile with logical metadata
LOGSTDBY: Validation complete
Completed: alter database open resetlogs
Wed Sep 23 19:40:51 2015
Starting background process CJQ0
Wed Sep 23 19:40:51 2015
CJQ0 started with pid=33, OS id=4520

Hash Join

Execution of Hash Join

Explanation

(1) 개요

JOIN 의 종류는 3가지로 나뉘는데, Sort merge join, Nested loop join, Hash join 이다. 이중 Hash Join (HJ) 은 7.3 부터 사용가능하며 그 주요 기능을 살펴보면
– index 가 여러 level 의 depth 를 가질 때 Sort Merge Join (SMJ) 이나 Nested Loops (NL)보다 좋은 효과를 낸다.
– sort 를 하지 않으므로 SMJ 보다 좋은 성능을 내며, 작은 table 과 큰 table 의 join 시에 유리하다.
– 주의해야 할 것은 hash join 은 equi join 에서만 가능하다는 것이다.
– HJ 은 driving table 에 index 를 필요로 하지 않는다.
– SMJ 나 NL 보다 효율적인데, 이는 SMJ 가 merge 단계에 들어가기 위해 양쪽 table 이 모두 sort 되어야 하기 때문이다. 또 NL은 driving table이 많은 row 의 data 를 갖는 경우 비효율적이서 inner table 을 여러번 probe(탐색)하게 한다. 이에 반해 HJ는 각 table 에 대해 1 번만 pass 한다.

(2) Cost의 비교

편의상 join 되는 sql 문이 다음과 같다고 가정하자.
SELECT S.a, B.a FROM S,B WHERE S.a = B.a
S는 small table 이고, B는 big table 이다.
(* analyze 를 수행하면 CBO 는 이미 S가 out table 이고 B 가 inner table 이며 , S 가 driving table 임을 인식한다. )
NLJ 는 S table 의 모든 row 에 대해 a column 을 B table 의 모든 column 을 match 하기 때문에 rS* rB key 비교가 요구된다.:
Cost(NLJ) 는 Read(S) + [ rS *Read(B) ] 에 비례
또 SMJ 는 S 와 B 를 memory 에 읽어와 join key 를 각각 sort 하고, join 을 수행하므로 cost 는

Cost(SMJ) 는 Read(S) + Write(SortRuns(S))
+ Read(B) + Write(SortRuns(B))
+ Merge(S,B)
+ CPUSortCost(S + B) 에 비례한다.

memory 에서 수행되는 HJ 의 algorithm 은 아래에서 설명된어 지는데 이의 cost 를 미리 check 해 보자면

Cost(HJ) = Read(S) + Build Hash Table in Memory (cpu)
+ Read(B) + Perform In memory Join(cpu)

이 경우 CPU costs를 무시하면, Cost(HJ)는 Read(S) + Read(B) 에 비례한다고 할 수 있다.

(3) Hash join 을 수행하기 위해 Oracle 은 다음의 과정을 거친다.:

이를 수행하기 위해 partition 단계와 join 단계를 거치며 이의 algorithm 을 grace join 이라 한다. 이의 한계는 join value 의 분배가 한쪽으로 치우침이 없이 partition 에 고르게 분포되어야 한다는 것이다. 이 algorithm 은 다음과 같다.

1. partiton 갯수를 결정한다.이를 fan out 이라한다.

high fan out 은 여러개의 작은 partition 을 만들어 i/o 의 효율을 떨어뜨리며,low fan out 은 커다란 partition 을 만들어 hash memory 의 hit율을 떨어뜨린다 . 그러므로 이를 적절히 가져가는 것이 performance 의 주 요점이며(이는 bit map 갯수를 결정) 이의 효율을 높이기 위해 hash area size를 늘리고, hash multi block io 를 줄인다.

2. driving table 을 결정한다.(작은 table 로 결정)

3. small table 의 필요 column 을 읽어들여 hash area 의 partition 에 분배하는데 이는 join column 으로 hash function1을 통과 시키면서 partition 에 hash function2 의 hash value 와 함께 분배한다. 이때 bitmap vector 를 만든다. 이 bitmap 은 2차원 bucket 인데 hash function 1 과 2 를 통과시켜 만든다.즉 partition 이 100 개라면 100* 100 의 10000 개의 cell 로 이루어진다.

4. 각 row 에 대해 bitmap 의 (a,b) 에 marking 을 한다.

5 위의 step 이 모두 끝나면 driving table 이 아닌 큰 table 을 읽어들여 function1,2 를 통과한다. 이때 나온 hash value 를 driving table 이 만들어 놓은 bitmap 과 대조하여 1 이면 join 을 해야 하는 column 으로 인식하고 아니면 join할 필요가 없는 row 이므로 버린다. 이를 bit vector filtering 이라한다. 이때 hash table 을 구성하기 위해 항상 full table 을 scan 하는 것은 아니다. 먼저 where 조건의 index 를 타서 조건에 맞게 row 를 걸러낸 다음 그 결과에 대해 hash table 을 구성한다. 또 hash array size 가 크면 문제가 안되는데, 작으면 disk 의 temp segment 에 내려 보내야 하므로 problem 이 발생한다.

6. B 의 joined value 를 hash function 1 을 통과시켜 이 row 가 bit vector에 있고, memory 위의 partition 에 있으면 join 이 수행되고 결과가 return 된다. memory 에 있지 않으면 disk 에 있는 적절한 S partition 에 씌여진다. 7. 1번째 B 가 pass 된후 S 의 수행되지 않는 partition 들이 최대한 temp segment 에서 memory 로 올려지고 hash table 이 생성된다. 그리고 B 의 partition 이 다시 읽혀져 memory join 이 실행된다. 즉 수행되지 않는 disk 의 partition (S,B) 이 읽혀진다.

(4) parameter

-HASH_JOIN_ENABLED : true 로 지정시 사용가능
-HASH_AREA_SIZE : sort_area_size 의 2배가 기본
-HASH_MULTIBLOCK_IO_COUNT : DB_BLOCK_READ_COUNT 가 기본
-USE_HASH : hint

(5) partition 갯수 결정

첫번째로 우리는 partition (bucket) 의 갯수를 결정해야 한다. 여기에 우리는 hashed row 를 넣을 것이다. 이는 hash_area_size, db_block_size and ash_multiblock_io_count parameters에 의해 결정된다. 또 이 값은 20% 정도의 overhead 를 고려해야 한다.
– storing partitions, the bitmap of unique left input and the hash table

함수 : Partitions 갯수 = (0.8 x hash_area_size) / (db_block_size x hash_multiblock_io_count)

row 가 가장 작은 table 이 읽혀지고 (R 이라고 부르자) , 각 row 는 hash algorithm 을 따른다. 각 row 를 bucket 에 골고루 펼쳐지게 하기 위해 2가지의 algorithm을 따른다. hash 되는 row 가 partition 에 골고루 분산되기 위해 1 번째 hash function 을 따르며, 2 번째 hash value 는 다음 hash 되는 경우를 위해 row 와 함께 저장된다. 이와 동시에 두가지의 hash value 를 이용한 bitmap 이 만들어진다.

(6) Bitmap building 예제 :

Hash
Algorithm 1 ->
1 2 3 4
1 0 0 0 0
Second
Hash 2 0 0 0 0 ------>
Algorithm
| 3 0 0 0 0
V
4 0 0 0 0

driving table 은 hash function 1, 2 를 통과하여 bitmap 을 만든다. 만일 hash area 가 모두 차면 가장 큰 partition 이 disk 로 내려간다. disk 의 partition 은 partition 에 할당되는 row 에 의해 disk 에서 update 되어진다. 만일 hash area 의 부족으로 1 partition 만이 memeory에 올라간다면 나머지 partition 은 모두 disk 에 놓여지게 된다. 이런 경우는 생기지 않도록 조심하여야 한다.
이 작업이 R table 의 모든 row 에 대해 행해진다. 이 작업시 가능한 모든 partition 이 memeory 에 위치하도록 해야 한다.
이 작업이후 B table 을 읽어들인다.이도 역시 hash function 을 통과시켜 hash value 가 memory 에 있는 partition 을 hit 하는지 check 한다.

만일 그러면 이 row 는 joined row 로 반환한다. 만일 아니면 해당 row 를 새로운 partiion 에 write 한다. 이때 S 와 같은 hash function 을 사용하며 이의 의미는 S와 B 의 같은 value는 같은 partition number 를 갖게 하기 위함이다.

(7) unique join keys 의 bitmap

bitmap 은 partition 에 들어있는 value 의 flag 이라 할수 있다. 이는 S 의 row 가 disk 의 partititon 에 씌이기 전에 생성되어 진다.

 

캐나다 교육적금 RESP

Registered Education Savings Plans(RESP)

RESP는 한국말로 하면 ‘교육적금’이라고 할 수 있습니다. 이 RESP에는 자녀들의 교육비용 적금 용도 이외에도 세금혜택과 정부지원 및 유연하게 자금을 운용할 수 있도록 하는 몇가지 장점이 있습니다.

RESP에 대한 혜택

  • Tax deferral : RESP 계좌에 투자/운용되어 얻어진 수익(이자)에 대한 세금을 당장 내지 않아도 됩니다. 그 수익금이 RESP 계좌에서 인출하기 전까지는 그 수익금에 대한 세금은 내지 않아도 되며, 자녀가 대학에 가게 되어 RESP 계좌에서 금액을 인출하여 자녀의 학비로 사용하는 경우 해당 자녀 이름 앞으로 인출된 금액만큼의 소득이 잡히기때문에 그 소득에 대해서는 세금을 내야하지만 보통 1년 학비로 사용하기 위해 RESP 계좌에서 인출하는 금액이 30,000불을 넘기 어렵기 때문에 세금은 거의 없다고 생각하면 됩니다.
  • 캐나다 교육채권 CLB (Canada Learning Bond) : CLB는 정부가 저소득 가정이 자녀의 고등학교 졸업 이후 교육을 위한 저축을 시작할 수 있도록 지원 해 주는 것으로 2004년 1월 이후에 태어난 자녀를 가진 가계소득 $42,707 이하의 가정 (NCB: National Child Benefit Supplement 대상자)에 RESP 계좌 개설 시 $500을 지급하며, 추가로 이 가정이 NCB 자격이 있는 동안 자녀가 15세가 될 때까지 매년 $100을 지원합니다. 또한 현재는 CLB 자격이 없는 가정도 추후에 NCB 혜택을 받게 되면 CLB $500와 연간 $100의 CLB 추가보조금을 받을 수 있습니다. 결국 저소득 가정은 교육적금(RESP) 계좌개설만으로도 15년간 최고 $2,000까지 보조금을 받을 수 있습니다.
  • 캐나다 교육저축 보조금 CESG(Canada Education Savings Grant) : CESG는 정부가 교육적금을 장려하기 위해 지급하는 보조금으로 두 부분으로 나누어져 있습니다.

– 기본 교육 저축 보조금(Basic Canada Education Savings Grant) – 가구의 소득에 관계없이 매년 자녀의 교육적금에 저축하는 금액의 최초$2,500까지의 금액에 대해 20%를 직접 보조금으로 지급합니다. (예를 들면, $2,500을 저축하는 경우 $500을 정부에서 교육적금 계좌에 입금해 줍니다.)

– 추가 교육 저축 보조금(Additional Canada Education Savings Grant) – 가구의 소득에 따라 매년 자녀의 교육적금에 저축하는 금액의 최초$500까지의 금액에 대해 추가로 10% 또는 20%를 지급합니다.

RESP 종류

  • Family RESP : 1명 이상의 친자녀 또는 입양자녀를 위해 개설 할 수 있으며, 가족 RESP 한 계좌로 모든 자녀를 위해 저축 할 수 있습니다.
  • Individual RESP : 개별  RESP 계좌를 개설하여, 자녀이건 아니건 1명의 아이를 위해 저축할 수 있습니다.
  • Group RESP : 여러분의 저축이 다른 사람들의 저축과 하나로 묶이며, 학교 등록금을 낼 때에는 저축액이 나뉩니다. 적금마다 규정이 다릅니다.

RESP 계좌는 한 명의 자녀 이름으로 여러 금융기관을 통하여, 여러 개의 계좌를 개설할 수 있으며, 31년간 불입 할 수 있고 35년간 유지할 수 있습니다.

RESP 계좌개설 방법

  • 1단계 : 자녀의 사회보장번호 SIN(Social Insurance Number)를 발급받으십시오. 가까운 Canada Service Center를 방문하시면 무료로 발급 받으실 수 있습니다.
  • 2단계 : RESP 제공자를 선택하여 계좌를 개설하십시오.
  • 3단계 : RESP 계좌를 개설한 다음 RESP 제공자의 기본/추가 교육저축 보조금 및 캐나다 교육 채권 신청서를 작성하십시오.

RESP 개설 기관

RESP 계좌는 대부분 금융기관(은행 및 증권회사)에서 만들 수 있습니다. 하지만, 다음과 같은 사항들을 잘 따져보고 선택해야 합니다.

  • RESP는 family plan, individual plan, group plan등이 있는데, 목적에 맞게 잘 선택해야 합니다.
  • 투자방법을 선택할 때는 GIC로 할지, 주식으로 할지, 뮤추얼 펀드로 할지 등을 상담원과 잘 협의하여 선택해야 합니다.
  • 수혜자가 RESP 계좌에서 찾아 사용할 때는, RESP 공급자가 목적에 맞게 사용하는지 관리감독할 책임이 있습니다. 또한, 수혜자가 고등학교 이상의 교육을 받지 않게 되는 경우에는 그동안 저금/투자된 금액이 얼마인지, 수익은 얼마인지를 정산하여 그동안 적금을 부은 사람에게 되돌려주게 됩니다. 또한, 정부가 그동안 추가로 보조해준 돈도 정부에게 돌려줍니다.

어떤 RESP 개설 기관은 계좌유지비를 내도록 하고, 어떤 개설 기관은 적금의 한도를 정하거나, 얼마나 자주 입금할 수 있는지를 제한할 수가 있습니다. 따라서, RESP 개설 기관을 정할 때는 특별해 이런 부분에 신경 쓰는 것이 좋습니다. 한번 개설하게 되면 개설 기관을 옮기기가 쉽지 않으므로 신중하게 결정할 필요가 있습니다.

기타

교육적금(RESP)의 연간 불입한도의 제한이 없어졌고 평생 불입한도는 5만 달러로, 특정한 한 해에 최대 5만 달러까지 불입이 가능합니다. 연간 보조금 수혜가능 불입금액 $2,500에 대해 사용하지 않은 여분이 있는 경우 연간 최고 $5,000까지 불입금액에 대해 $1,000까지 CESG 보조금을 받을 수 있습니다.  예를 들면, RESP에 가입하지 않은 자녀가 현재 13세인 경우 매년 $5,000씩 5년간 $25,000을 불입하면 보조금(CESG) $5,000을 받을 수 있습니다. CESG는 자녀가 17세가 된 해 말까지 지급되며 평생 받을 수 있는 총 보조금은 $7,200 입니다.  단, 자녀가 15세 이후에도 CESG를 계속 받으려면 15세가 된 해 말까지 적어도 RESP계좌에 $2,000이 불입되었던지, 아니면 그 이전 4년 이상을 년 $100이상씩 불입해야만 합니다.

하지만 Canada Revenue Agency(캐나다 국세청)에서는 이 계좌에서 투자되어 얻어진 수익에 대하여 적금의 수혜자(Beneficiary)가 고등학교 이상의 교육에 사용할 때까지 세금을 부과하지 않기 때문에 복리(?)의 혜택을 누릴 수 있는 특별한 계좌입니다.

은행이나 투자회사에 가서 RESP계좌를 열면, 자녀가 미래에 받을 교육을 위하여 즉각적으로 저금/투자를 할 수 있습니다. 많은 부모가 이 계좌를 언제 열어야 하고 얼마씩 투자해야 하는가 하고 고민을 합니다. 이에 대한 간단한 대답은 ‘지금 당장, 최대한 많이’입니다. 왜냐하면, 일찍 시작할수록 세금을 내지 않고 투자수익이 계속해서 늘어나기 때문입니다.

RESP 인출

아이가 ‘Qualifying educational Program’에 등록하면, RESP로부터 ‘Educational Assistance Payments (EAPs)’를 받게 됩니다.
여기에서 ‘Qualifying education program’이라고 하는 것은 최소한 3주간 연속해서 교육하고, 매주 10시간 이상의 교육을 하는 프로그램을 이야기합니다. 만약에 외국의 교육기관에서 교육을 받는 경우에는 최소한 13주 이상 계속되는 교육이어야 합니다.
RESP는 ‘Apprenticeships’, ‘Trade school에서 진행하는 프로그램’, CEGEP, 대학, 대학교등의 교육을 말합니다. 또한, RESP는 시간제 교육(Part time education)이나 전일제 교육 모두에 사용될 수 있습니다. 이에 관하여 의문사항이 있으시면 국세청에 문의하시면 상세히 알아볼 수 있습니다.

아이가 고등학교 이후의 교육을 받지 않는 경우
만약에 수혜자가 고등교육을 포기하는 경우에는

  • 일정기간 기다리면서 아이가 마음을 돌리길 기대해 보거나
  • 수혜자를 다른 형제/자매로 바꾸거나
  • 본인의 RRSP계좌로 옮기거나
  • 인출 (원금은 세금을 안 내도 되며, 정부가 보조한 돈은 정부에게 돌려줍니다. 수익에 관해서는 세금을 냅니다.)

할 수 있습니다.

참고 링크

http://www.hrsdc.gc.ca/eng/jobs/student/savings/index.shtml

http://www.hrsdc.gc.ca/eng/jobs/student/index.shtml

 

Oracle database script with Windows PowerShell

If Oracle database is running on Windows environment, PowerShell would be a very good tool for automated scripting for the database such as monitoring or backup script. So the following script would be an example:

 

Add-Type -Assembly System.Data.OracleClient
$connectionString = "Data Source=HOSTNAME:1521/SID; User ID=USERNAME; Password=PASSWORD"
$connection = New-Object System.Data.OracleClient.OracleConnection($connectionString)
$connection.Open()

#$queryString = "SELECT db_link FROM dba_db_links"
$queryString = "SELECT instance_name FROM v`$instance"
$command = new-Object System.Data.OracleClient.OracleCommand($queryString, $connection)
$reader = $command.ExecuteReader();
$name = $(
 while ($reader.Read())
 {
 $reader.GetValue(0) 
 }
)

write-host "Instance Name :" $name | ft
$connection.Close()

REDO-LESS Operations (NOLOGGING option) in Oracle

REDO-LESS Operations (NOLOGGING option) in Oracle

It is possible not to generate redo data at some operations. The examples would be a direct loader, CREATE TABLE AS SELECT(CTAS), and CREATE INDEX with NOLOGGING option. However, even in these cases, a little redo will be generated when the operation changes data dictionary block and when the delayed block cleanout execute for a source object.

The NOLOGGING option can be used for the following SQL statements from Oracle 8.

Direct-load INSERT
ALTER TABLE … MOVE PARTITION
ALTER TABLE … SPLIT PARTITION
ALTER INDEX … SPLIT PARTITION
ALTER INDEX … REBUILD
ALTER INDEX … REBUILD PARTITION
From the Oracle8 Reference Manual:

With the NOLOGGING option, data is updated with minimal logging which means that it makes newly allocated extent invalid and it generates only logs to change its dictionary information. So in case of media recovery, the extent invalidation record shows some block is logically corrupt status because there no redo log for the recovery.

So, the data in the table should be kept, the backup should be done after the work with NOLOGGING.

The following is the example;
REDO RECORD – Thread:1 RBA: 0x0000cf.0000002a.01c0 LEN: 0x0028 VLD: 0x01
SCN scn: 0x04e2.0023a5da 10/07/98 09:54:20
CHANGE #1 INVLD AFN:8 DBA:0x02007277 BLKS:0x001f SCN:0x04e2.0023a5da SEQ: 1 OP:19.2

When the redo record is applied to this block, the ORA-273 error would be occurred on it.

ORA-00273 “media recovery of direct load data that was not logged”
Cause: A media recovery session encountered a table that was loaded by the direct loader without logging any redo information. Some or all of the blocks in this table are now marked as corrupt.
Action: The table must be dropped or truncated so that the corrupted blocks can be reused. If a more recent backup of the file is available, try to recover this file to eliminate this error.

When any operation try to read the block, the ORA-1578 error would be occurred.

Reference Ducumment : DSI305

 

 

 

 

일부 operation의 경우 redo를 생성시키지 않는 것이 가능하다. 예를 들어 direct loader나, CREATE TABLE AS SELECT 나 CREATE INDEX에 NOLOGGING 옵션을 사용하는 경우를 들 수 있다. 이 경우 redo 생성이 되지 않는다. 주의해야 할 것은 이 경우에도 data dictionary에 대한 변동 사항에 대해서는 operation에 의해 영향을 받는 block들에 대해 여전히 redo 가 생성이 된다는 것이다. 또한 source object에 대해 delayed block cleanout 이 수행될 경우에도 redo가 생성된다.

오라클 8 부터는 다음 SQL 문장들에 NOLOGGING 옵션을 사용 할 수 있는 기능이 추가 되었다.

Direct-load INSERT
ALTER TABLE … MOVE PARTITION
ALTER TABLE … SPLIT PARTITION
ALTER INDEX … SPLIT PARTITION
ALTER INDEX … REBUILD
ALTER INDEX … REBUILD PARTITION
From the Oracle8 Reference Manual:

NOLOGGING 모드에서는, 데이터는 최소한의 logging으로 수정이 된다 ( 최소한의 logging이란, 새로 할당된 extent를 invalid 상태로 만들고, dictionary 정보를 변경하는데 필요한 log 정보를 말한다 ). Media recovery중에는 extent invalidation record는 일정 범위의 block이 논리적으로 corrupt 상태임을 나타내는데, 이것은 복구에 필요한 완전한 redo log가 남아 있지 않기 때문이다.

따라서, 테이블의 내용이 유실되어서는 않되는 상황이라면, NOLOGGING 작업 후 BACKUP을 수행하여야 한다.

LOGGING 옵션을 사용했을 경우와 비교해 NOLOGGING 모드에서는 훨씬 적은 양의 redo log가 생성된다. Redo log에 invalidation record는 일정 범위의 block이 software corrupt상태임을 나타내기 위한 것이다. 이 경우 change vector의 type은 INVALID로 지정이 되며, 범위는 최초 시작 지점인 DBA에 의해 결정된 후, 연속된 block의 개수도 지정이 된다.

다음은 예이다.
REDO RECORD – Thread:1 RBA: 0x0000cf.0000002a.01c0 LEN: 0x0028 VLD: 0x01
SCN scn: 0x04e2.0023a5da 10/07/98 09:54:20
CHANGE #1 INVLD AFN:8 DBA:0x02007277 BLKS:0x001f SCN:0x04e2.0023a5da SEQ: 1 OP:19.2
Redo record가 적용될 경우, 이 블록에 대해서는 ORA-273 에러가 발생한다.

ORA-00273 “media recovery of direct load data that was not logged”
Cause: A media recovery session encountered a table that was loaded by the direct loader without logging any redo information. Some or all of the blocks in this table are now marked as corrupt.
Action: The table must be dropped or truncated so that the corrupted blocks can be reused. If a more recent backup of the file is available, try to recover this file to eliminate this error.

해당 block을 읽으려는 operation 역시 alert log에 ORA-1578이 남는다.

Reference Ducumment : DSI305

캐나다 BC주 구직사이트 모음(job search engine)

다음은 제가 한참 구직할때 유용하게 사용하던 구직사이트 모음입니다. 일부는 BC주에만 해당되거나 IT 업종에만 해당되는 사이트도 있으니 참고하세요.
제 경험상 Indeed.ca나 eluta.ca, 그리고 T-Net이 가장 효율이 좋았습니다.

Eluta.ca – www.eluta.ca
A meta-search engine which specializes in finding new job ads from employers in Canada. Besides up-to-date job postings, Eluta also provides employer profiles and information from the publishers of Canada’s Top 100 Employers on top companies, best diversity employers, best employers for newcomers and new graduates, most environmentally conscious companies, etc.

Indeed.ca – www.indeed.ca
Get jobs collected from job boards, newspaper classifieds and corporate sites. Read the Blog for information on trends, company profiles and labour market data from around the world.

BCjobs.ca – www.bcjobs.ca
BC Jobs has been in business for almost 10 years, providing BC job seekers with information about the local labour market and BC-based companies, as well as BC jobs.

T-Net – http://www.bctechnology.com/

Eluta와 Indeed는 일종의 job search 엔진입니다. 즉, company에서 자신의 회사 홈페이지 구인란에 구인공고를 내면 이 job search엔진이 그 내용을 찾아주는 구글과 비슷한 개념의 구직사이트이지요. 즉, 회사에서 구인공고를 Eluta나 Indeed에 직접 올리지 않아도 되는 시스템이지요. 요즘엔 이런 사이트가 많이 사용되고 있다고 합니다.

혹시 찾고자 하는 일자리가 IT 직종이고 BC주에 위치하는 회사라면 T-Net 이라는 웹사이트는 필수로 보셔야 하는 구직 사이트입니다. 구직 정보뿐 아니라 각종 IT 회사 동향에 대한 뉴스도 나오고 아주 선호도가 높은 웹사이트 입니다. IT 회사라면 자신의 회사 홈페이지에 구인 공고를 낼때 꼭 T-Net에도 함께 올리는게 일반화 되어 있습니다. 저도 매일매일 몇번씩 이 사이트를 방문했었고, 저의 현재 일하는 회사도 이 사이트에서 공고를 보고 잡게 된 것입니다.

 

아래는 기타 구직 사이트입니다. 참조하세요.

 

Here is a list of the job boards:

Finance Accounting – www.jobwings.com

Accounting & Bookkeeping – www.accountingjobs.ca

Human Resources – www.hrjob.ca

Sales – www.salesrep.ca

Computer Science – www.itjob.ca

Retail – www.retailjob.ca

Engineering – www.recrutech.ca

Administrative Support – www.adminjob.ca

Call Centers & Customer Service – www.callcenterjob.ca

Project Management – www.pmjob.ca

Business Analysis – www.bajob.ca

Pharmaceutical – www.pharmajob.ca

Healthcare – www.healthcarejob.ca

Legal – www.legaljob.ca

Paralegal – www.paralegaljob.ca

Part-time – www.part-time.ca

 

Other Job Posting Sites:

All Canadian Jobs www.allcanadianjobs.com

Allstar Jobs www.allstarjobs.ca

BetterJobs www.betterjobs.biz

BC Government Jobs  http://employment.gov.bc.ca

BCjobnetwork.com www.bcjobnetwork.com (online job matching)

Canadajobs.com www.canadajobs.com

Canadian Job Search www.webcrew.com/jobs/morejobs.htm

Canjobs.com www.canjobs.com

Careerjet.com www.careerjet.ca

CareerOwl www.careerowl.com

Jobs in Tourism and Hospitality www.cooljobscanada.com

Craigslist Vancouver http://vancouver.craigslist.org/jjj/

eFinancialCareers www.efinancialcareers-canada.com

Elance for Freelancers www.elance.com

Engineering www.recrutech.ca

Find A Job Canada www.find-a-job-canada.com

Groove Job www.groovejob.com

Higher Bracket: Job Postings for Executives www.higherbracket.ca

Job Bank www.jobbank.gc.ca

Jobboom www.jobboom.com

Job Bus Canada www.jobbus.com

Job Shark www.jobshark.ca

JobLineCanada.com www.joblinecanada.ca

Science Jobs Canada www.sciencejobs.ca

Monster.ca – Search Jobs Search for jobs all over Canada and the rest of World! www.monster.ca

Vancouver Vicinity Jobs www.vicinityjobs.com

WorkLink Employment Society www.worklink.bc.ca/temp

Workopolis www.workopolis.com

밴쿠버에서 IT 직장 잡기 (2) – 면접 기회 잡기

제가 영구랜딩을 하고 현재의 직장을 잡기까지 딱 11개월이 걸렸습니다. 6월 2일에 영구랜딩을 하고 5월 4일에 일을 시작했으니까요.

그 11개월이라는 기간이 저에게는 아주 많은 것을 느끼게 해주었습니다. 인생, 관계, 가족 등등… 지금은 어느정도 자신감이 붙었습니다만, 그래도 아직 모르는게 많습니다. 이렇게 얘기하니 좀 거창하게 보일 수도 있겠으나, 길지도 짧지도 않은 11개월간 돈은 안벌고 집구석에 쳐박혀 온종일 일자리만 찾아보고 이력서만 수정해서 제출하고 있으니 집에 눈치도 보이고 생활비 걱정도 되지요. (사실 중간에 생활비가 바닥나서 취업 직전까지 식당에서 아르바이트도 3개월 했었습니다.) 특히나 주변분들이 종종 “한국 이민자들은 캐네디언 회사에 취업 못해. 그러다가 거지되서 한국 돌아가는 사람 많이 봤어. 화이트 컬러만 고집하지 말고 전기나 배관 기술을 배워 보든가 해..” 와 같은 말은 저에게 정말 큰 낙담을 주었지요. 이런말을 들어가며 생활비 걱정도 하며 정말 여러번 좌절 했었습니다. 정말로 돈은 떨어져가고 얘들도 먹여 살려야 하니까요.

이 11개월간 오로지 캐나다에 취업을 해야겠다는 일념 하나로 조사하고 사람을 만나고 정보를 구하고 찾아보고 … 정말 많은 것들을 한 것 같습니다.

참고로 말씀 드리면, 저는 취업전에 영어권 국가에서 정식으로 대학을 다녔다거나 영어를 잘한다는 소리를 들어본적이 없습니다. 그냥 저도 평범한 한국 중년 기술 이민자입니다. 아직도 우리 회사에서 저는 영어를 제일 못하는 사람입니다. 영어 못한다고 꿈을 아예 포기하지는 마세요.

암튼 이 포스트의 제목처럼 밴쿠버에서 직장을 잡으려면 일단 면접을 봐야하는데 그 면접 기회를 잡으려면 꼭 해야 하는 것들이 있습니다.

1. Connection (인간 관계)

무조건 사람을 많이 만나야 합니다. 한국보다 더 인맥이나 혈연을 중요시 하는 곳이 캐나다인 것 같습니다. 이유는 잘 모르겠으나, 회사 사장 입장에서는 아무래도 아는 사람을 통해 일할 사람을 소개 받으면 그만큼 인간적으로 믿을 수 있다는 점에서가 아닐까 생각됩니다. 캐나다엔 워낙 다양한 인종도 모여 있고 특이한 사람이 많거든요.

처음에 이민오면 당연히 아는 사람이 없을테니 사람 만나기도 힘듭니다. 이럴때 필요한게 이민 봉사 기관 입니다. Success, ISS of BC, MOSAIC, Options 등등. 이민오셔서 무조건 한번 찾아가서 상담을 받아보시길 권해드립니다. 정착뿐 아니라 취업에 관련해서도 많은 도움을 받을 수 있고, 사람을 만날 수 있는 좋은 기회이니깐요. 또한 이러한 기관들을 통해 Volunteer나 무료 영어 수업 등을 신청해서 자꾸 사람을 만나야 합니다. 그리고 내가 어떤 일을 잘하고 어떤류의 직업을 찾고 있다는 것을 널리널리 알려야 합니다.

캐나다에선 내가 먼저 필요한 것을 요구하지 않으면 아무도 도와주지 않습니다.

2. Set a goal (목표 설정)

내가 캐나다에서 어떤 직장을 잡을 것인지 목표를 잘 설정하고 그에 대한 전략을 잘 세워서 계획대로 나아가는 것이 아주 중요합니다.

한국에서 했던 일과는 다른 것을 캐나다에서 시도해보는 것도 좋은 생각일 수 있으나 시간과 돈이 아주 많이 들고 성공할 확률이 훨씬 더 낮다는 것을 명심할 필요가 있습니다.

캐나다 회사에서 이민자들을 뽑을때 그 이민자들의 기술과 경험을 우선적으로 보고 뽑습니다. 그 이민자들이 영어를 잘해서도 아니고 캐나다의 문화를 잘 알아서 뽑는 것도 아닙니다. 그러므로, 내가 한국에서 어떤 일을 했었고, 어떤 일을 가장 잘하는지를 다시 한번 정리한 후 캐나다에서는 이와 관련된 일이 어떤 일이 있는지를 찾아서 그 직종에 대한 직업을 구하는 것이 가장 확실하고 빠른 방법입니다.

예를 들면, 저는 한국에서 오랫동안 DBA를 했었습니다. 그런데 DBA라는 직종이 캐나다에서 구하기도 힘들고 일자리도 별로 없기때문에 다른 직종(식당, 청소, 정원사 등등)을 시도해본다고 생각해보죠. 아마도 그런 일자리를 구하기도 힘들뿐더러 적성에 맞지도 않고 급여도 낮아서 적응하기 힘들게 됩니다. 또한 DBA를 했었다고 IT분야 전부를 잘 아는 것은 아닐 것입니다. 저도 Database는 아주 잘 알지만 Network 분야나 System Admin 분야는 초급 수준이거든요. 그런데 비슷한 IT 분야라고 해서 온갖 직종에 이력서를 물 뿌리듯 뿌리는 것은 시간만 낭비하는 것이라고 생각합니다.

저도 처음엔 그렇게 했었다가 나중에 깨닫게 되었죠.

3. 괜찮은 이력서와 커버레터 만들기

저는 주로 구직정보를 찾을 때 Indeed.caeluta.ca , T-Net 사이트를 이용했습니다. 이 세가지 사이트가 가장 효율이 좋았던 것으로 기억합니다. 그리고 내게 맞는 Job posting을 볼때마다 기존에 만들어 놓은 표준 이력서와 커버레터를 수정해서 그 Job posting에 맞추어 내가 그 Job position에 가장 적합한 인물인 것처럼 꾸며서 제출을 합니다. 물론 거짓말을 하면 안되고, 내가 가진 경험과 기술 중에서 그 Job position에 필요한 기술들을 중심으로 서술해서 이력서와 커버레터에 잘 표현을 해야하는 거죠.

그러기때문에 하나의 Job posting에 apply하기 위해 이력서와 커버레터를 수정하는 시간이 아주 오래걸립니다. 전 영어 Native가 아니거든요. 그러므로 이력서를 모든 비슷한 Posting에 물뿌리듯 뿌린다는 것은 완성도가 높지 않은 이력서를 제출할수 밖에 없을 것입니다.

사실 처음엔 이력서와 커버레터를 인터넷에서 찾아보고 그 샘플을 이용해서 제것을 만들었지만 나중에 알고 보니 형편 없더군요.

이력서와 커버레터 작성에 큰 도움을 받게 된 계기는 제가 두명의 멘토를 만났을때입니다. 2014년 9월경에 Success에서 Accenture와 함께하는 취업 멘토링 프로그램에 참가를 했었는데(4주 프로그램이고 1주일에 1번 참가자들이 멘토들과 만나서 많은 정보를 교환하는 프로그램) 그곳에서 아주 중요한 멘토를 2명 만났습니다.

1명은 Accenture 소속이지만 Best Buy에서 IT 매니저로 일하는 중국계 이민자였고, 다른 한명은 Accenture에서 Oracle DBA로서 오래 일하다가 최근 BC Hydro로 옮겨서 일하는 중국계 이민자였습니다. 이 두명은 이민 온지 모두 10년이 넘었고, 저와 동일한 경험을 했던 사람들이었습니다. 게다가 1명은 정확히 같은 직종에 일하는 사람이고, 다른 한명은 IT 매니저(캐나다에서는 Manager가 자기 밑에서 일할사람을 직접 면접도 보고 뽑기도 합니다. HR 부서에는 보통 보고만 하거나 면접볼때 같이 참석시키는 방식이지요)였기때문에 제가 만들어간 이력서와 커버레터를 아주 세심하고 깔끔하게 고쳐주었습니다. 캐나다의 IT 회사에서 일하는 매니저들이 맘에 들어하는 용어 선택 및 스토리 선택 등이 아주 큰 부분이었지요.

특히 용어 선택과 스토리 선택은 아주 중요합니다. 한국말도 50년대에 유행했던 말과 현재 유행하는 말이 다르고 어감이 다르듯이 영어도 마찬가지로 시간이 가면서 천천히 변합니다. 한국에서 우리가 어렸을때 배운 영어는 현재 캐네디언들에겐 별로 와닿지 않은 말이 될 수도 있습니다. 별로 와닿지 않은 말로 이력서와 커버레터를 작성하면 아마도 HR 담당자는 처음 한줄만 보고 바로 다음 이력서로 Pass할지도 모릅니다. 인기가 좋은 회사의 HR 담당자의 경우 워낙 많은 이력서를 검토해야하기때문에 한 이력서당 검토하는 시간이 평균 2분 이내라고 합니다.

암튼 이렇게 만들어진 이력서와 커버레터를 가지고 정말 많은 곳에 면접을 봤었고, 지금 회사에 취업도 하게 되었습니다.

혹시 내 직종과 정확히 맞는 회사 10군데에 지원을 했는데 한군데도 연락이 오지 않는다면 내 이력서나 커버레터가 잘못된 것이 아닌지를 다시 한번 검토할 필요가 있을 것 같습니다.

다음 글에 계속 이어서….

Automate backups of SSAS cubes

How to automate backups of SSAS cubes!

This article provides how to automate backups of SSAS cubes using Windows PowerShell.

1. Create text files and scipts on C:\Scripts\

a. CubeList.txt

EnterpriseDW
TrackingDW
ETLDW

 

b. Backup_SSAS.ps1

$ServerName=”localhost”
$loadInfo = [System.Reflection.Assembly]::LoadWithPartialName(“Microsoft.AnalysisServices”) | Out-Null
## Add the AMO namespace
[Microsoft.AnalysisServices.BackupInfo]$serverBackup = New-Object ([Microsoft.AnalysisServices.BackupInfo])
[Microsoft.AnalysisServices.Server]$server = New-Object Microsoft.AnalysisServices.Server
$server.connect($ServerName)
If ($server.name -eq $null)
{
Write-Output (“Server ‘{0}’ not found” -f $ServerName)
break
}
$DBList = Get-Content “c:\Scripts\CubeList.txt”
Foreach($DBName in $DBList)
{
$DB = $server.Databases.FindByName($DBName)
if ($DB -eq $null)
{
Write-Output (“Database ‘{0}’ not found” -f $DBName)
}
else
{
Write-Output(“—————————————————————-“)
Write-Output(“Server : {0}” -f $Server.Name)
Write-Output(“Database: {0}” -f $DB.Name)
Write-Output(“DB State: {0}” -f $DB.State)
Write-Output(“DB Size : {0}MB” -f ($DB.EstimatedSize/1024/1024).ToString(“#,##0″))
Write-Output(“—————————————————————-“)
#$BackupDestination=$server.ServerProperties.Item(“BackupDir”).value
$BackupDestination=”\\backup\dbbackup\SQL_Server\SSAS\” + $DB.Name
$serverBackup.AllowOverwrite = 1
$serverBackup.ApplyCompression = 1
$serverBackup.BackupRemotePartitions = 1
if (-not $backupDestination.EndsWith(“\”))
{
$backupDestination += “\”
}
[string]$backupTS = Get-Date -Format “yyyyMMddHHmm”
$serverBackup.file = $backupDestination + $db.name + “_” + $backupTS + “.abf”
$serverBackup.file
$db.Backup($serverBackup)
if ($?) {“Successfully backed up ” + $db.Name + ” to ” + $serverBackup.File }
else {“Failed to back up ” + $db.Name + ” to ” + $serverBackup.File }
}
}
$server.Disconnect()

 

c. Bacup_SSAS_main.ps1

[string]$backupTS = Get-Date -Format “yyyyMMddHHmm”
powershell -executionpolicy bypass -file C:\Scripts\Backup_SSAS.ps1 > C:\Scripts\Backup_SSAS_Logs\Bacup_SSAS_$backupTS.log

 

2. Create backup log directory

: C:\Scripts\Backup_SSAS_Logs\

 

3. Create a job in SQL Server database

Type : Operating system(CmdExec)

Run as : SQL Server Agent Service Account

powershell -executionpolicy bypass -file C:\Scripts\Backup_SSAS_main.ps1

 

4. Backup log files look like this;

———————-
Server : ABIP01
Database: EnterpriseDW
DB State: Processed
DB Size : 32MB
———————-
\\backup\dbbackup\SQL_Server\SSAS\EnterpriseDW\EnterpriseDW_201508042052.abf
Successfully backed up EnterpriseDWP to \\backup\dbbackup\SQL_Server\SSAS\EnterpriseDW\EnterpriseDW_201508042052.abf
———————-
Server : ABIP01
Database: TrackingDW
DB State: Processed
DB Size : 14MB
———————-
\\backup\dbbackup\SQL_Server\SSAS\TrackingDW\TrackingDW_201508042052.abf
Successfully backed up ETL to \\backup\dbbackup\SQL_Server\SSAS\TrackingDW\TrackingDW_201508042052.abf

밴쿠버에서 IT 직장 잡기 (1) – 준비 단계

저는 2014년 6월초에 가족과 함께 영구랜딩을 했습니다. 사실 랜딩 전에 몇년정도 밴쿠버에서 학생비자로 생활했던 경험이 있어서 영구랜딩하면서 정착하는 과정은 아주 어렵진 않았지요. (영구랜딩 후기는 아래 포스팅 참조)

사실 돈이 무척 많은 분들 아니면 밴쿠버에서 살려면 뭔가 일정한 수입이 있어야 하는데,  자영업을 하거나 직장을 다니거나 둘중에 하나로 돈을 벌게 되지요.

근데 자영업도 투자금이 필요하고 사업을 하는 기술도 필요하고 사업에 대한 아이디어도 필요하겠지요. 전 이 세가지 중 아무것도 없었습니다. 오로지 직장에 다니기에 필요한 기술만 있었지요. 한국에서 IT 경력이 약 7년 이상정도 있었거든요.

랜딩을 하자마자 핸드폰과 차를 구하고 집을 구하면서도 그 와중에 어떻게 직장을 잡을 것인지 고민하면서 관련 분야에서 일하시는 분들을 만나러 다녔습니다. 처음 만났던 분이 석세스의 Job market 담당 선생님(지금은 다른곳에서 근무하십니다.)을 만나뵙고 밴쿠버에서 어떤식으로 직장을 잡을 것인지에 대한 큰 그림을 그릴수 있었습니다.

 

 

1. 캐나다에서의 경험이 중요하다

캐나다에 있는 회사에서는 직원을 뽑을때 캐나다에서의 직장 경력이나 일한 경험을 많이 참고합니다. 경험이나 경력이 없는 사람은? 영어라도 잘해야겠지요. 근데 캐나다에서 태어나고 자란 사람들도 막 대학 졸업한 무경력자들은 취업이 엄청 힘듭니다.

그래서 모두들 Volunteer 라는 것을 합니다. 각종 이민 봉사 기관(SUCCESS, ISSofBC, MOSAIC 등)을 방문하시면 여러가지 Volunteer 기회를 얻을 수 있습니다.

Volunteer도 하고 영어도 연습하고… 1석2조 네요.

이 경험은 나중에 이력서에 넣으면 취업에 유리합니다.

 

2. 영어보다는 커뮤니케이션

한국분들 대부분은 한국에서 영어를 10년 넘게 배워오셨을 것입니다. 다들 아시지만 그러면서도 변변치 않은 영어회화 한문장 하기 어렵지요. 게다가 잘못 알고 있는 것도 있습니다. 영어는 화려한 문장과 어휘, 발음이 아닌 어떻게 상대방과 커뮤니케이션을 하느냐가 더 중요하다는 내용을 잘 모르시는 분들이 많습니다.

저도 영어권에서 오래살아보진 않았습니다만 특히 밴쿠버에는 이민자가 현지인보다 많고 그 영어 발음또한  천차만별에 알아 듣기 힘든 발음이 엄청 많습니다. 대개 인도, 중국, 이란 계통에서 오신 분들이 그러하지요. 하지만 그분들은 현지인들과 아주 대화를 잘 해 나갑니다. 자세히 들어보면 영어 문법도 엉터리이고 발음도 정말 꽝이지만 커뮤니케이션을 아주 잘 하는 것이지요.

많은 이민자 봉사기관에서 이러한 주제를 가지고 자주 세미나를 하기도 하니, 이런 기회가 생기면 꼭 참석해서 배워보시면 좋을 것 같습니다. 영어공부는 문법 공부나 어휘공부(알츠나 토플)가 중요한게 아니라 어떻게 현지인과 대화를 잘 해나가느냐를 배우는것이 중요합니다.

 

3. 이민자들의 취업을 위한 정부기관 및 프로그램

영주권을 받고 이민한지 5년이 넘지 않은 기술 이민자에 대해 취업을 지원해주는 다양하고 좋은 정부기관 프로그램이 많이 있습니다.저는 크게 다음 2가지 프로그램의 도움을 많이 받았습니다.

a. skills connect

b. mentoring program

Skills connect를 제공하는 기관은 위 링크를 따라가보시면 자세히 나오는데요, Back in motion, Douglas college, Training innovations, ISSofBC 등의 기관이 있습니다.(기관은 정부 정책에 따라 바뀌기도 합니다) 저는 IT 분야라서 Training innovations에 등록을 했구요, 각 기관마다 약간의 특색이 있습니다. 모두 들러보신 후에 충분히 정보를 얻으시고 가장 맘에 드는 곳에 등록을 하시면 됩니다. 이민자로서 단 1번의 등록 기회가 있으며 등록한 날로부터 1년간만 서비스를 받을수 있습니다. 약 2000불정도의 금액 상당으로 취업 지원을 받을 수 있고, 각종 취업과 관련된 정보를 얻으실 수 있습니다.이력서와 커버레터 작성, 직업 찾는 방법 및 리소스, 취업 세미나 및 취업 박람회 등등.Mentoring program에 등록하시면 나에게 가장 적합한 Mentor와 3개월간 만나면서 이것저것 정보를 얻을 기회를 잡을 수 있습니다. Mentor는 캐나다 현지에서 내가 일하는 직종에 종사하는 경력자로 보통 선정이 되는데요, 해당 Mentor와 프로그램을 진행할지 안할지는 본인이 판단하시면 됩니다. MOSAIC이 가장 많고 다양한 Mentor를 보유하고 있는 것으로 알고 있는데요, 모든 이민자 봉사기관에 각각 프로그램을 신청하고 Mentor를 소개받아도 됩니다.

휴… 글 정리해서 쓰기가 어렵군요.. 말재주가 없어서…

다음 포스트에 계속 해서 올릴께요…

감사합니다.

캐나다 밴쿠버에 영구 랜딩하다

vancouverdowntown

(사진은 밴쿠버 다운타운. 비행기로 다운타운 하버에 접근중에 아이폰4로 촬영한 것입니다.)


캐나다 도착해서 인터넷 연결되면 바로 랜딩 수기(?) 남겨야지 했는데,어찌어찌 하다보니 이제서야 남기게 되네요.. ^^;


저는 지난 6월 4일 캐나다 밴쿠버에 잘 랜딩하였습니다. 사실 2013년 4월에 랜딩을 했다가 영주권만 받고 한국에 1년반정도 더 있다가 이제서야 캐나다에 영구랜딩을 하게 된 셈이지요.


임시랜딩하고, 한국에 1년 반정도 거주하면서 캐나다에 갈 준비를 한다고 했는데도 생각만큼 준비가 충분하지 못했던것 같다는 생각이 드네요. 그래도, 그 사이에 석세스가 서울에 사무소가 있다는 것도 알게되고, 덕분에 캐나다 갈 준비에 많은 도움을 받아서 아주 좋았었습니다.

여러가지 유용한 세미나와 저에게 가장 중요한 목표점인 job 구하는 부분에 있어서 이진영 선생님과 함께 했던 워크샵도 아주 많은 도움이 되었었습니다.


캐나다에 6월 4일 도착해서 써리에 거주하는 처제네 가족집에 잠시 기거하며 실제로 살 집과 차를 알아보았습니다.


1. 집 구하기주로 밴조선 장터(www.vanchosun.com)와 크레이그리스트(http://vancouver.craigslist.ca/hhh/)를 통해서 알아보았는데, 저는 크레이그리스트를 통해서 결국 구하게 되었습니다. 밴조선에서 2군데정도 크레이그리스트에서 7군데정도 연락해서 직접 집을 본 후에 결국 코퀴틀람과 포코 경계쯤 새로 구성된 주택단지인 Burk mountain 지역에 있는 하우스의 1층에 렌트를 하기로 했습니다.우리 얘들이 너무 뛰어대서 아파트 2층 이상은 스트레스 받을까봐 안되겠더라구요.. ㅋㅋㅋ입주는 6월 23일에 했습니다.. 전에 살던 사람이 있어서요… 근데 집주인이 친절하고 동네가 조용해서 현재까진 아주 만족하고 잘 살고 있습니다.


2. 차 구하기차는, 일단 예산이 많지 않은 관계로 10,000불 이하의 중고차를 알아보기로 하고 차를 잘 아는 형님(전에 잘 알고 지내던 형님입니다.)과 함께 차를 보러 다녔습니다. 근데, 마침 현대에서 좋은 프로모션을 하더군요. 최대 7년 무이자 할부! 쩝. 매월 240불정도씩 내는걸로 하고 엘란트라 해치백으로 7년 할부로 구입을 했습니다. 나중에 어찌될지 몰라도 현재 당장 목돈이 안들어가므로.. ㅋ (차 구하기는 “차 구하기” 편 포스트에서 더 자세히 설명 드릴께요.)


3. 의료보험 신청하기6월 4일 랜딩하고 5일에 의료보험인 MSP를 신청했습니다. 근데, 중간에 다시 회신이 왔더라구요.. 서류가 미비해서.. ㅠ.ㅠ영주권카드를 양면을 복사해서 보내야하는데 앞면만 복사해서 보내서.. 쩝.. 암튼 다시 해서 보냈습니다. 3개월 걸린다니깐 잘 하면 9월 초에는 받을수 있겠지요…

(의료보험 신청하기도 “의료보험 신청하기” 포스트에서 따로 더 자세히 설명 드릴께요.)


4. 무료 영어 강습 신청하기이것저것 알아보면서 코퀴틀람센터 옆에 있는 링컨센터에 위치한 ISSofBC에 들러서 이사벨 선생님과 상담하면서 LINC를 신청했습니다. 예전에 ELSA가 LINC로 바뀌었더군요.. 이사벨 선생님과 유니스 선생님(이분 소개는 이따가 구직 부분에서 나옵니다.)의 추천대로 LINC는 와이프꺼만 신청하고, 저는 따로 더글라스 칼리지에 영어를 신청했습니다.와이프꺼 LINC는 이사벨 선생님이 신청을 해주셨고, 신청해주신 후로 약 2주정도 있다가 써리에 있는 LINC assessment 센터에서 연락이 와서 와이프가 레벨테스트를 보러 갔습니다. 레벨 5가 나왔더군요. 근데 수업은 언제부터 들을 수있는지는 아직 알수가 없습니다. 

현재 BC주 선생님들이 파업중이시고, 와이프는 우리 3살짜리 애를 care해줄수 있는 LINC 수업을 들어야하기때문에 코퀴틀람에 있는 몽고메리 센터밖에 선택의 여지가 없었거든요… 암튼 신청은 해두었습니다.저는 더글라스 칼리지에 등록했는데요, 영어는 English for foreign trained professional 이라는 수업을 신청해두었습니다. 메일로 담당선생님(Kathy)께 약속을 잡고, 방문해서 간단한 레벨테스트(주제 2개중에 1개 선택해서 1시간정도 에세이를 쓰는 것입니다.)를 보는데요, 어째든 통과해서 수업을 등록해두었습니다. 이 수업은 9월부터 시작하고, 일주일에 2번 오후 6시경부터 9시까지 진행되는 수업이라 회사를 다니더라도 무리없이 진행할 수 있을것 같아 신청하였습니다.수업료는 무료(정부 지원)이나 학생 등록비로 약 100불정도 소요가 되었습니다.다른 ESL과목(full time)도 신청할수 있다고 Kathy 선생님이 체크를 해주셔서 나중에 시간이 되면 더 들을수도 있을 것 같습니다.좋은점은 학생증을 받는것(학생증이 있으면 이것저것 할인되는게 좀 있더라구요)과 UPass를 사용할수 있는 것입니다.(http://www.translink.ca/en/Fares-and-Passes/Student-Passes/U-Pass.aspx)


5. 운전면허증사실 제가 영주권을 받기 전에 밴쿠버에 약간 살았던적이 있습니다. 그때 운전면허증을 받아놓은게 있는데 아직 유효기간이 남아서 그냥 쓰고 있습니다. (예전엔 한국 운전면허증을 밴쿠버에 있는 ICBC에 가져가면 간단한 테스트를 거쳐 BC주 운전면허증으로 바꿔줍니다. 비용이 좀 있구요)


6. 휴대폰휴대폰은 한국에서 쓰던것을 계속 쓰고 있습니다.저는 아이폰5, 와이프는 노트2를 KT껄로 쓰고 있었는데, KT에 문의해보고 캐나다 BELL에 문의 해본결과 한국에서 쓰던것을 그대로 캐나다에 가져가 쓸수 있다는 걸 알게 되었습니다. Country lock이라는게 있는데, 한국에서 출시되는 스마트폰의 경우 대부분 country lock이 해제되어 나오므로(KT의 경우는 그러함) 그대로 캐나다에 가져가면 심카드만 바꾸어 껴서 사용할 수 있습니다.단, 꼭 한국의 서비스는 해지가 된 상태여야만 합니다.밴쿠버에서는 처제 남편(저한테는 동서지요.)이 BELL 대리점 중 Smile이라는 대리점에 아는 매니저가 있다고 해서 좀 좋은 PLan으로 가입했습니다. 머.. 다른거 비교안하고 그냥 했습니다. 사실 랜딩하느라 넘 힘든 와중이라서.. ㅠ.ㅠ참고로, 한국과 통화의 편의성을 위해 한국에서 사용하던 LG070을 그대로 가져와서 지금 쓰고 있습니다.제가 캐나다에 있더라도 한국과 통화할때 070을 쓰면 시내통화료만 나오거든요. ^^

참고로 LG070 끼리 통화를 하게 되면 무료입니다.


7. 기타원래는 집을 구하고, 전기 및 인터넷, TV케이블 신청등을 해야하는데, 제가 하우스 1층으로 렌트를 얻은 관계로 모두 할 필요가 없게되었습니다. 일반 아파트나 콘도에 집을 얻는 경우라면 BC HYDRO에 전화하거나 인터넷으로 Account를 개설하여 집에 전기가 들어오도록 해야하고, 인터넷과 TV케이블도 TELUS나 BELL 등의 서비스 업체에 전화하거나 대리점에 방문하여 맘에 드는 상품으로 가입해야 사용할 수 있게 됩니다.. 


8. 아이 학교저에겐 캐나다 나이로 3살 남자와 8살 여자 아이가 있습니다.(2014년 기준)큰애는 캐나다에서 9월이면 Grade3가 되구요… 둘째는 Preschool을 갈수도 있고 안갈수도 있구요.일단 큰애는 학교에 가야하니깐 일단 등록했습니다.집을 구할때 가장 중요하게 생각한 부분이 큰애 학교였습니다. 학교가 좋아야하는게 아니라 가까워야하는거.. ㅡ.ㅡ지금 구한 집에서 큰애 학교까지 걸어서 5분도 걸리지 않는… 사실 집 대문을 나오면 학교가 보입니다. ㅋBurk mountain지역에 있는 elementry인 Leigh elementry school입니다. 아주 성적이 좋은 학교는 아니지만 성적이 좋지 않다고 아이들 인성까지 나쁜 학교는 아닌것 같습니다. 9월부터 Grade3으로 시작하는데요 선생님이 현재 파업중이라 9월에 시작할수 있을지는 미지수입니다.학교 등록하고, 아이 학용품도 신청해두었습니다. (참고로 말씀드리면, 매 학년이 시작되면 아이 학용품을 학교에 보내야 합니다. 학교마다 시스템이 좀씩 다른데요, 학교에서 요구하는 학용품 리스트를 보시고 그 학용품을 그대로 학교에 직접 사서 보내셔도 되고, 그걸 대행해주는 업체에 신청을 하셔도 됩니다.)큰애가 9월까지 할게 없어서 여기저기 알아본 결과 좀 저렴한 Summer camp에 지난주와 다음주꺼를 신청해두었습니다.(일주일에 65불). 근처에 있는 포코의 hyde creek recreation centre에 수영도 신청해두었구요. 좀 큰애의 경우 간단한 레벨테스트를 보고 수영 레벨을 정해주면 그 레벨에 맞추어 수업을 신청하시면 됩니다. 큰애는 한동안 수영을 안했더니 다시 Swim kids 1 레벨을 받아서, 지난주까지 수업을 받고 통과해서 이제 Swim kids 2 레벨이 어제부터 시작되었습니다.둘째는 아직 한국말도 서투른 관계로 preschool은 고민만 하고 있습니다.


9. JOB아주 중요한 것은 항상 마지막에 나오지요.저뿐만 아니라 우리 가족에게 가장 중요한 부분이 Job 입니다.집과 차를 구하면서 랜딩하고 가장 먼저 했던게 유니스 선생님(리치몬트 석세스에서 일하시는 Labour market officer 입니다.)한테 연락했던거였습니다. 6월 4일 랜딩하고 5일에 유니스선생님한테 연락했거든요.. 친절하게도 제가 지내고 있었던 써리에 있는 도서관까지 와주셔서 아주 편리하게 만날 수 있었습니다.그리고, 캐나다 job market에 대해서도 생생한 정보를 들을 수 있었구요…참고로 말씀드리면, 저는 한국에서 8년 이상 Oracle Database Administrator 로 일을 했었습니다. 주로 LG CNS, SK C&C, 삼성SDS와 일하면서 대형 회사(국민은행, NH농협생명, LG전자, LG필립스, 중앙대, MBC, 우리은행, LG카드, 외교부, 교육부, 정통부, 행자부 등)에서 프로젝트를 수행하기도 하고, LG카드의 경우 전담 운영 DBA로 활동하기도 했습니다.일단, 캐나다 오기 직전 석세스 서울 오피스에서 이진영 선생님과 4 세션짜리 취업역량 강화 프로그램에 참여하면서 캐나다 노동시장에 대해 많은 부분을 알게 되어 아주 좋았던것 같습니다. 캐나다에 와서는 앤드류선생님 조언대로 유니스 선생님께 바로 연락해서 Job search에 대한 목표를 잡을 수 있도록 하였습니다. 실제로 유니스 선생님께서는 저에게 Job search에 대한 큰 그림을 그려주셨습니다.


– Volunteer 신청유니스선생님이 추천해주신 volunteer가 하나 있었는데요, 코퀴틀람 센터 옆에 있는 City centre library에서 하는 volunteer 프로그램 중의 하나인 Library champion 입니다. Info session에 찾아 가보았더니 15명 뽑는데 거의 50명쯤 왔더군요.간단히 설명을 듣고, 담당 선생님과 인터뷰를 하고 나면 몇일 후에 합격여부를 알려줍니다. 전 운이 좋게 합격이 되었습니다. 담당 선생님인 Branka 선생님과 인터뷰를 했는데, 유니스선생님 소개로 왔다고 하니깐 서로 친구라면서 아주 좋아하시더군요. 아마도 이것땜시 합격된게 아닌가 싶습니다.. ㅋㅋ (역시 캐나다는 Network가 중요하다는… )이 Library champion이 되면 함께 참여한 다른 volunteer 분들과 인맥이 형성됩니다. 그분들도 역시 캐나다에 영주권자들이며, 아주 오래사신 분들도 있고, 아닌분들도 있구요… 특히나 Library 담당자분과 친하게 지낼수도 있습니다.저는 현재까지 4주동안 4번 있는 Training session을 모두 마친 상태이구요… 이 training session 에서 communication skill과 presentation skill 등 아주 유용한 수업을 해주므로 큰 도움이 됩니다.


– Job options 신청Job options는 여러기관에서 진행을 하긴 하는데, 다들 별로 권하지는 않으시더군요. ISSofBC에서 진행하는 Job options 프로그램의 경우 수업에 꾸준히 참석하면 약간의 생활비도 주고 자격증도 몇개 따개 해주는데요, 아주 entry level job 이기도 해서요.. 사실 전 상관 없었는데.. 일단 추천해주신 대로 Skills connect를 먼저 신청하기로 했습니다.


– Skills connect 신청Skills connect는 몇몇 기관에서 진행을 하는데요, 저의 직종이 IT 분야이다보니 이쪽 분야에 경험이 많은 Training Innovation 이라는 기관에 신청하는게 좋다고 하여 이곳에 신청했습니다.신청하면 담당 컨설턴트 선생님과 연결을 해주는데 모두 영어로 상담이 진행이 됩니다. 이게 Skills connect에 신청하려면 몇가지 자격이 되어야합니다.영주권자여야 하고, 캐나다 외의 지역에서 몇년 이상의 해당 기술 경력이 있어야하고, 중급 이상의 영어레벨이 되어야 하는 등등..현재까지 저는 담당 컨설턴트 선생님을 5~6번정도 만났는데요,(거의 매주 만났습니다.) resume 및 cover letter 보정(석세스 서울 사무소에서 취업역량 강화 프로그램 하면서 만들어 놓은 resume 랑 cover letter 제출했더니 아주 조금만 수정하고 통과되었습니다. ^^)해주시고, 캐나다 IT분야에 대한 시장 안내 및 저의 직업 군에 대한 상세한 이야기를 나눕니다. Interview 팁 및 Skill도 연습하기도 하구요. Mento 프로그램이 있어서 제 직군에서 현재 밴쿠버에서 일을 하는 경력자와 연결을 해주는 것도 신청은 해놨는데, 아직 Match 되는 사람이 없어서 소개는 못받았지만, 컨설턴트 선생님이 일단 다른 분들과 연결을 해주려고 애쓰고 계시더라구요. 전에 Training innovaion의 client였던 사람중 한명이 Capilano university의 DBA로 취업이 되었는데, 일단 그분과 저를 연결을 해주어서 많은 도움이 되고 있습니다.


– 도움이 되는 각종 세미나 및 Workshop에 참석하기지난 거의 두달동안 많은 세미나에 참석을 했습니다. 그중에서 요 아래 랜딩수기 써주신 KEN 선생님도 만나뵈었구요…실제로 이민을 와서 1년 내에 많은 분들이 정상적인 Job을 구하시는 것을 보고 많은 힘이 되었고, 그분들의 경험담을 들으면서 저의 취업 노하우를 늘려나가고 있습니다.


– 이력서 제출하기6월 4일 랜딩 이후 현재까지 제 직종(Database Admin)에 Apply를 한 곳은 다음과 같습니다.UBC(University of British Columbia) – Database Administrator (Oracle)Langara college – Senior Database Administrator (Oracle)Vancity (Credit union) – Senior Database Administrator (Oracle + SQL Server)Amazon Vancouver – 4곳부서 모두 Oracle Database AdministratorNavarik (S/W development company) – Oracle Database Administrator일단, 이렇게 Apply를 했지만 아직까지 연락이 온 곳이 없습니다.물론 Job posting에 있는 Qualification과 저의 이력서는 모두 맞추어서 제출을 했구요, 실제로도 저의 경력과 맞구요…

그런데 연락은 없습니다. 좀 더 시간이 걸리는 것일수도 있고, 아님 정말 제가 아는 connection이 아무도 없어서 HR부서에서 그냥 저의 이력서는 쓰레기통으로 들어갔을수도 있지요.그래서, Langara college와 Amazon은 이력서를 들고 직접 담당자를 만나보길 시도했습니다.Langara에서는 만나주질 않더구요… 아마도 제가 좀 더 생떼를 썼어야 하는게 아닌가 싶은데요, IT부서 사무실 바로 옆에 Security 사무실이 있어서 좀 겁이 나기도 했었나봅니다… 어쨌든 실패했고,


Amazon은 Security 문제로 인해 사무실에 들어가보지도 못했습니다. 카드키가 있어야만 들어갈수 있더군요. ㅡ.ㅡ


암튼 실패했고,UBC는 제가 아는 캐네디언 친구를 통해서 담당 부서의 매니저급의 이메일 주소를 알아내어(제 친구와 그 매니저는 모르는 사이입니다.) 제가 직접 그 매니저에게 이메일을 보내보았으나 역시 아직까지 아무런 회신은 없습니다.현재까진 매일매일 희망과 좌절을 경험하며 구직 사이트를 뒤지고 있습니다. 인맥도 조금씩 늘려나가고 있구요…


휴, 글을 쓰다보니 너무 길어졌습니다.
감사합니다.