Set TNS_ADMIN="C:\orahome\network" rem Umgebungsvariable TNS_ADMIN zeigt an wo oracle folgende netzwerk config files sucht:
sqlnet.ora ... haupt netzwerk config file, gibt an in welcher reihenfolge folgende files verabeitt werden:
tnsnames.ora ... wie host file, direkt angabe von sid verbindungsinformationen
ldap.ora => ldap server, der auch sid auflöst
Beispiel sqlnet.ora:
# sqlnet.ora Network Configuration File: C:\oracle\11gR2\client\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.
# This file is actually generated by netca. But if customers choose to
# install "Software Only", this file wont exist and without the native
# authentication, they will not be able to connect to the database on NT.
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, LDAP, EZCONNECT)
meine Sys/Db admin & Developper Notitzen - wer Rechtschreibfehler findet darf sie behalten ... my Sys/Db Admin and developper notes - I don't care about typos
Thursday, November 21, 2013
Wednesday, November 20, 2013
Oracle rechte / priviliges
-- which grants has username on tables ? / welche echte hat username auf tabellen ?
select * from user_tab_privs where grantee like 'username';
--generates grant statements for / erzeugt gran statements ü upd,del,ins,sel
select 'grant SELECT, INSERT, UPDATE, DELETE on "ownername"."' || table_name || '" to "username" ;' from user_tables where table_name like 'T_%'
System Privilegs / Rechte
Object privilegs / Rechte
to all tables:
grant select any table, insert any table, delete any table, update any table to myuser;
select * from user_tab_privs where grantee like 'username';
--generates grant statements for / erzeugt gran statements ü upd,del,ins,sel
select 'grant SELECT, INSERT, UPDATE, DELETE on "ownername"."' || table_name || '" to "username" ;' from user_tables where table_name like 'T_%'
System Privilegs / Rechte
select * from user_sys_privs; select * from dba_sys_privs; select * from session_privs;
Object privilegs / Rechte
select * from all_tab_privs; select * from user_tab_privs; select * from dba_tab_privs;
to all tables:
grant select any table, insert any table, delete any table, update any table to myuser;
installing oracle instant client - oracle instant client installieren
1) download insant client basic, unzip, copy files to c:\orahome (or any other name)
2) environment variables: add c:\orahome to path (system, environment variabls) add oracle_home=c:\orahome; tns_admin=c:\orahome\network
3) make dir network in orahome and create file sqlnet.ora example:
# sqlnet.ora Network Configuration File: C:\oracle\11gR2\client\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.
# This file is actually generated by netca. But if customers choose to
# install "Software Only", this file wont exist and without the native
# authentication, they will not be able to connect to the database on NT.
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, LDAP, EZCONNECT)
4) create file tnsnames.ora
5) for ldap access create file ldap.ora
DEFAULT_ADMIN_CONTEXT = "dc=subdomain,dc=mydomain,dc=at"
DIRECTORY_SERVERS = (oraoid2.subdomain:389:636,oraoid1.subdomain:389:636,oraoid1.xxx:389:636)
DIRECTORY_SERVER_TYPE = OID
6) test by sqlplus: downloas sqlplus instant client, copy files to c:\orahome and execute at cmd:
sqlplus user@sid
(sid should be defined in ldap or tnsnames)
select table_name from user_tables;
2) environment variables: add c:\orahome to path (system, environment variabls) add oracle_home=c:\orahome; tns_admin=c:\orahome\network
3) make dir network in orahome and create file sqlnet.ora example:
# sqlnet.ora Network Configuration File: C:\oracle\11gR2\client\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.
# This file is actually generated by netca. But if customers choose to
# install "Software Only", this file wont exist and without the native
# authentication, they will not be able to connect to the database on NT.
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, LDAP, EZCONNECT)
4) create file tnsnames.ora
5) for ldap access create file ldap.ora
DEFAULT_ADMIN_CONTEXT = "dc=subdomain,dc=mydomain,dc=at"
DIRECTORY_SERVERS = (oraoid2.subdomain:389:636,oraoid1.subdomain:389:636,oraoid1.xxx:389:636)
DIRECTORY_SERVER_TYPE = OID
6) test by sqlplus: downloas sqlplus instant client, copy files to c:\orahome and execute at cmd:
sqlplus user@sid
(sid should be defined in ldap or tnsnames)
select table_name from user_tables;
Tuesday, November 19, 2013
rename Ms Access Tables / Ms Access Tabellen umbennen
'You have to run th code until all tables are renamd - some changes are not comitted - start again until count=0
'Nicht alle Umbenennungen werden übernommen - solang neustarten, bis alle unbenannt wurden (unbenannt=0)
Function RenTab()
Dim tablename, praefix, newname As String
praefix = "T_PDB_"
Dim anz As Integer: anz = 0
For z = 0 To CurrentDb.TableDefs.Count - 1
tablename = CurrentDb.TableDefs(z).Name
Debug.Print tablename;
If (Left(tablename, Len(praefix)) = praefix) Then
Else
If (Left(tablename, 4) <> "MSys") Then
newname = praefix & tablename
Debug.Print " ->" & newname;
anz = anz + 1
CurrentDb.TableDefs(z).Name = newname
End If
End If
Debug.Print 'carige return
Next z
Debug.Print
Debug.Print "umbenannt:" & anz
End Function
Function UnRenTab()
Dim tablename, praefix, newname As String
Dim anz As Integer: anz = 0
praefix = "T_PDB_"
For z = 0 To CurrentDb.TableDefs.Count - 1
tablename = CurrentDb.TableDefs(z).Name
Debug.Print tablename;
If (Left(tablename, Len(praefix)) = praefix) Then
newname = Mid(tablename, Len(praefix) + 1)
Debug.Print " ->" & newname;
anz = anz + 1
CurrentDb.TableDefs(z).Name = newname
End If
Debug.Print 'carige return
Next z
Debug.Print
Debug.Print "umbenannt:" & anz
End Function
'Nicht alle Umbenennungen werden übernommen - solang neustarten, bis alle unbenannt wurden (unbenannt=0)
Function RenTab()
Dim tablename, praefix, newname As String
praefix = "T_PDB_"
Dim anz As Integer: anz = 0
For z = 0 To CurrentDb.TableDefs.Count - 1
tablename = CurrentDb.TableDefs(z).Name
Debug.Print tablename;
If (Left(tablename, Len(praefix)) = praefix) Then
Else
If (Left(tablename, 4) <> "MSys") Then
newname = praefix & tablename
Debug.Print " ->" & newname;
anz = anz + 1
CurrentDb.TableDefs(z).Name = newname
End If
End If
Debug.Print 'carige return
Next z
Debug.Print
Debug.Print "umbenannt:" & anz
End Function
Function UnRenTab()
Dim tablename, praefix, newname As String
Dim anz As Integer: anz = 0
praefix = "T_PDB_"
For z = 0 To CurrentDb.TableDefs.Count - 1
tablename = CurrentDb.TableDefs(z).Name
Debug.Print tablename;
If (Left(tablename, Len(praefix)) = praefix) Then
newname = Mid(tablename, Len(praefix) + 1)
Debug.Print " ->" & newname;
anz = anz + 1
CurrentDb.TableDefs(z).Name = newname
End If
Debug.Print 'carige return
Next z
Debug.Print
Debug.Print "umbenannt:" & anz
End Function
Friday, November 15, 2013
todo
neune, nicht gechachten Ausführungsplan:
OPTION (OPTIMIZE FOR UNKNOWN)
Ausführungsplan Cache leeren:
DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE
Stored Procedure ausführen als:
Execute as
--server umbenennen
select * from sys.servers
select * from sys.servers where server_id=0
@@servername
sp_dropserver
sp_addserver 'hostname\ionstancename', 'local'
--Log für ... nicht vorhanden: offline / Online
OPTION (OPTIMIZE FOR UNKNOWN)
Ausführungsplan Cache leeren:
DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE
Stored Procedure ausführen als:
Execute as
--server umbenennen
select * from sys.servers
select * from sys.servers where server_id=0
@@servername
sp_dropserver
sp_addserver 'hostname\ionstancename', 'local'
--Log für ... nicht vorhanden: offline / Online
Thursday, November 14, 2013
Service Unavailable (IIS 6.0 Windows Server 2003)
kann auf Sicherheitsprobleme hinweisen, wenn die Website läuft ... Abhilfe: Konto mit entsprechenden Berechtigungen im AppPool einstellen und neu starten (iisreset)
Wednesday, November 13, 2013
sql server health (gesundheits) check
1) Arbeitsspeicher: maximal Grenze (physikalischer gesamtspeicher-2GB fürs betreibssystem) sonst wird der sqlserver prozess eventuell ausgepaged (ab 2005 meldung im log wenn ausgepaged)
2) Autogrow: keine zu kleinen Einheiten, 32 oder 64MB , besser: eine große Datei, die nicht fragmentiert ist, also vor dem Anlegen checken ob ein so großer zusammenhängender Platz auf der HD verfügbar, ebenso bei vergrößerung mit großen Zusammenhängenden Dateien vergrößern; mit dbcc loginfo logfile chekcen: sollte 50-100 Virtuelle Logfiles enthalten, bei autogrow 64MB werden 4 virtuelle Logfiles erzeugt, bei mehr 8
3) Shrink: niemals Datenfiles Shrinken - fragmentiert Indizies, und rebuild braucht dann wieder den Speicher; beim Logfile Shrinken auf die LogBackupChain achten
---------------------
1) set sql server max. ram to max physical ram-2gb for OS
2) Autogrow: grow by mind 64MB, better one big file not fragmented, every Autogrow creates a new fragment; look at logfile with dbcc loginfo to check count of virtual logfiles should be 50-100
3) Shrink: never shrink datafiles because index are fragmented, watch log file backup chain when shrinking logfile
2) Autogrow: keine zu kleinen Einheiten, 32 oder 64MB , besser: eine große Datei, die nicht fragmentiert ist, also vor dem Anlegen checken ob ein so großer zusammenhängender Platz auf der HD verfügbar, ebenso bei vergrößerung mit großen Zusammenhängenden Dateien vergrößern; mit dbcc loginfo logfile chekcen: sollte 50-100 Virtuelle Logfiles enthalten, bei autogrow 64MB werden 4 virtuelle Logfiles erzeugt, bei mehr 8
3) Shrink: niemals Datenfiles Shrinken - fragmentiert Indizies, und rebuild braucht dann wieder den Speicher; beim Logfile Shrinken auf die LogBackupChain achten
---------------------
1) set sql server max. ram to max physical ram-2gb for OS
2) Autogrow: grow by mind 64MB, better one big file not fragmented, every Autogrow creates a new fragment; look at logfile with dbcc loginfo to check count of virtual logfiles should be 50-100
3) Shrink: never shrink datafiles because index are fragmented, watch log file backup chain when shrinking logfile
Thursday, November 07, 2013
Remote desktop - "The Local Security Authority cannot be contacted"
I got error "The Local Security Authority cannot be contacted" by logging in via remotedesktop - console worked fine - after I moved a hyperv windows 7 machine from on host to another.
I rmeoved the machine from the domain and inserted it agian and it worked fine again.
Nachdem ich eine HyperV Machsine von einem Host zu einem anderen verschoben habe, erhielt ich bei login durch rremote desktop den Fehler "The Local Security Authority cannot be contacted" - über die Hyper V Console konnte ich mich ganz normal anmelden. Herausnehmen und wieder hinzufügen zur Domäne löste das Problem.
I rmeoved the machine from the domain and inserted it agian and it worked fine again.
Nachdem ich eine HyperV Machsine von einem Host zu einem anderen verschoben habe, erhielt ich bei login durch rremote desktop den Fehler "The Local Security Authority cannot be contacted" - über die Hyper V Console konnte ich mich ganz normal anmelden. Herausnehmen und wieder hinzufügen zur Domäne löste das Problem.
Wednesday, November 06, 2013
enabling Remote Desktop by Group Policy / Remotedesktop mittels Group Policy zulassen
Computer Configuration, Administrative Templates, Windows COmponents, Terminaldienste Remotevebindung für Benutzer mit Hilfe der Terminaldienste zulassen
und zusätzlich Remotedesktop durch die Windows Firewall durchlassen
additionally allow remotedesktop through firewall
Computer Configuration, Administrative Templates, Network, Network Connections, and then Windows Firewall / Domain / Remotedesktopausnahme
und zusätzlich Remotedesktop durch die Windows Firewall durchlassen
additionally allow remotedesktop through firewall
Computer Configuration, Administrative Templates, Network, Network Connections, and then Windows Firewall / Domain / Remotedesktopausnahme
Tuesday, November 05, 2013
concating columns and strings in oracle to generate drop table statements / Strings und Spalten in Oracle verbinden um drop Table Statements zu generieren
select 'Drop table ' || table_name || ';' from user_tables where table_name like 'mytablestoDelete%';
Monday, November 04, 2013
oracle: kill connections (user sessions) - Verbindungen beenden
select
sid --wird benötigt
zum löschen
,serial# --wird benötigt
zum löschen
,username --loginname
,osuser --windows
loginname
,machine --host auf dem
session gestartet wurde
,program --applikation
,status --eh kloa
from v$session
WHERE USERNAME = 'username';
|
…und damit dann die Sessions
löschen:
--ALTER SYSTEM KILL SESSION 'sid,serial#';
|
sql server: connect users to logins / User mit Logins verbinden
sql server hat ein 2 stufiges SIcherheitsmodell: Der SqlServer selbst verwaltet Rechte für logins, jede Datenbank am SqlServer hat dann db users, die mit den logins verbunden sind, oder auch nicht. z.b. nach einem Restore. UNverbundene (verwaiste) Users können wie folgt gelistet werden:
--This will lists the orphaned users:
EXEC sp_change_users_login 'Report'
Im ssms können Logins Datenbanken zugeorndet werden, dann wird in der Datenbank ein entsprechender User mit dem selben Namen des logins erstellt. Wenn Login und Datenbankbenutzer bereits vorhanden sind können sie wie folgt verbunden werden:
--If you already have a login id and password for this user, fix it by doing:
EXEC sp_change_users_login 'Auto_Fix', 'user'
EXEC sp_change_users_login 'Auto_Fix', 'user', 'login', 'password'
Wenn noch kein login existiert, kann dieses über SSMS oder wie folgt erstellt werden:
--If you want to create a new login id and password for this user, fix it by doing:
--creates login EXEC sp_change_users_login 'Auto_Fix', 'dbUser',NULL,'pwd'
for searching:
EXEC SP CHANGE USER LOGIN
EXEC SP CHANGE USERS LOGIN
--This will lists the orphaned users:
EXEC sp_change_users_login 'Report'
Im ssms können Logins Datenbanken zugeorndet werden, dann wird in der Datenbank ein entsprechender User mit dem selben Namen des logins erstellt. Wenn Login und Datenbankbenutzer bereits vorhanden sind können sie wie folgt verbunden werden:
--If you already have a login id and password for this user, fix it by doing:
EXEC sp_change_users_login 'Auto_Fix', 'user'
EXEC sp_change_users_login 'Auto_Fix', 'user', 'login', 'password'
Wenn noch kein login existiert, kann dieses über SSMS oder wie folgt erstellt werden:
--If you want to create a new login id and password for this user, fix it by doing:
--creates login EXEC sp_change_users_login 'Auto_Fix', 'dbUser',NULL,'pwd'
for searching:
EXEC SP CHANGE USER LOGIN
EXEC SP CHANGE USERS LOGIN
Subscribe to:
Posts (Atom)