Considering that SQL Server Express is free, why would you ever use any other database for a Windows based multi-user database-driven application?
Because (not sure if all of these are still true, but they were at one time):
Limited to 1GB of memory
Database size limited to 4GB (10GB in newer versions)
It can only use one CPU
No importing or exporting of data
No job scheduler
There are a lot of applications for which the above factors make SQL Server Express impractical.
Related
I'm learning Oracle & SQL and I'm doing a project. I'd like it if someone could check the conclusion I've come to as a result of my research and tell me if I'm doing this right.
TL;DR question: i'm using Windows 10 and i want to build a (small) database on someone else's computer that I can access remotely. Do i need to install Linux in order to do this?
My goal: to set up a database on a computer that multiple people (like 3 max including me) can access. I would access it from a different computer that it's installed on.
My reading of the Oracle documentation has lead me to think that I need to do the following steps:
DL Oracle using the Real Application Cluster installation rather than the single instance installation. This is because I want to be able to access the database remotely and possibly use it while another user is using it.
To click that setting, I need to install the Oracle Grid Infrastructure. In order to do that I need to configure the user's environment (source: https://docs.oracle.com/cd/E18248_01/doc/install.112/e16763/pre_install.htm#BABIBGFA) and in order to do that i need X Windows. To use X Windows on my Windows 10 system i need to install X Server.
Am i understanding this right? Why can't Oracle run on Windows?
Uh, I'm certainly not a DBA (perhaps you'd rather ask this question on SE for DBA), but - I think you overcomplicated it.
In my opinion, you don't need anything of what you mentioned. Not a single thing. No RAC / Grid Infrastructure / Linux / X Server. That's just a HUGE overkill.
Any Oracle database would do, even Express Edition (XE) which has the smallest footprint and would serve your needs. Documentation describes how to share your database with other people on the network, but - this short walkthrough will give you idea of what you should be paying attention to.
We have oracle express edition 11g i.e. ORACLE XE 64bit. There is 10GB available space in the database. But system tablespace is 98% full, there are 2 system tabalespaces.
When we (our startup team) try to ADD or RESIZE the datafile or tablespace using ALTER command we get following error:
ORA -12953: The request exceed the maximum allowed database size of 11GB
What should be done to add or resize the datafile?
What should be done to add or resize the datafile?
Nothing can be done. The XE version is limited to 11GB of data, see this link
Oracle Database Express Edition Oracle Database Express Edition (Oracle Database XE) is an entry-level edition of Oracle Database that
is quick to download, simple to install and manage, and is free to
develop, deploy, and distribute. Oracle Database XE makes it easy to
upgrade to the other editions of Oracle without costly and complex
migrations. Oracle Database XE can be installed on any size machine
with any number of CPUs, stores up to 11 GB of user data, using up to
1 GB of memory, and using only one CPU on the host machine. Support is
provided by an online forum.
You can purchase Standard or Enterprise edition, which don't have this restriction (but you must pay for it).
You can also register in Oracle's Technology Network and use any of Oracle's product (including Oracle's Standard and Enterprice database editions from their download site) for free, but only for testing and development purposes.
See this licence for details:
License Rights and Restrictions
Oracle grants You a nonexclusive,
nontransferable, limited license to internally use the Programs,
subject to the restrictions stated in this Agreement, only for the
purpose of developing, testing, prototyping, and demonstrating Your
application and only as long as Your application has not been used for
any data processing, business, commercial, or production purposes, and
not for any other purpose.
As krokodilko says, it's a license limit.
Try to find some garbage or old data to delete... maybe some log table or something like that!
select owner||'.'||segment_name,segment_type, trunc(sum(bytes/1024/1024/1024),5) GB
from dba_segments
group by owner,segment_name,segment_type
order by 3 desc;
We have oracle express edition 11g i.e. ORACLE XE 64bit. There is 10GB available space in the database. But system tablespace is 98% full, there are 2 system tabalespaces.
When we (our startup team) try to ADD or RESIZE the datafile or tablespace using ALTER command we get following error:
ORA -12953: The request exceed the maximum allowed database size of 11GB
What should be done to add or resize the datafile?
What should be done to add or resize the datafile?
Nothing can be done. The XE version is limited to 11GB of data, see this link
Oracle Database Express Edition Oracle Database Express Edition (Oracle Database XE) is an entry-level edition of Oracle Database that
is quick to download, simple to install and manage, and is free to
develop, deploy, and distribute. Oracle Database XE makes it easy to
upgrade to the other editions of Oracle without costly and complex
migrations. Oracle Database XE can be installed on any size machine
with any number of CPUs, stores up to 11 GB of user data, using up to
1 GB of memory, and using only one CPU on the host machine. Support is
provided by an online forum.
You can purchase Standard or Enterprise edition, which don't have this restriction (but you must pay for it).
You can also register in Oracle's Technology Network and use any of Oracle's product (including Oracle's Standard and Enterprice database editions from their download site) for free, but only for testing and development purposes.
See this licence for details:
License Rights and Restrictions
Oracle grants You a nonexclusive,
nontransferable, limited license to internally use the Programs,
subject to the restrictions stated in this Agreement, only for the
purpose of developing, testing, prototyping, and demonstrating Your
application and only as long as Your application has not been used for
any data processing, business, commercial, or production purposes, and
not for any other purpose.
As krokodilko says, it's a license limit.
Try to find some garbage or old data to delete... maybe some log table or something like that!
select owner||'.'||segment_name,segment_type, trunc(sum(bytes/1024/1024/1024),5) GB
from dba_segments
group by owner,segment_name,segment_type
order by 3 desc;
We have multiple applications developed in Visual Foxpro 8.0 running in a data center on Windows 2008 R2 on VMware. We also have a Citrix farm on the same network where users run yet another VFP 8.0 application in Citrix sessions. All applications share the same set of data tables located on a file server (also Windows 2008 R2 VM). Virtual hosts are connected by 10Gb LAN (managed switch).
Since mid-July we started seeing random 1104 "Error reading file..." errors on multiple different applications on multiple servers. All of them reference different files on the file server.
The problem started mid-July and it frequency gradually increased. Earlier it was most frequent in the afternoons by 3 pm, now it happens from early morning till late afternoon. It affects EDI servers (these run batch jobs in unattended mode) and Citrix servers and a variety of applications. It occurs when a VFP application (any of them) tries to open a database container file or individual tables most often with USE command but some times executing a SQL Select statement, or when loading a VFP form that opens tables in DataEnvironment
We caught a moment when the same exact error happened on two different servers running different applications at the same exact moment (up to a second). We also saw two different applications running on the same computer erroring out at the same moment.
We replaced the file server with a new virtual machine with no relief (we since changed it back to the old file server ).
We disabled the antivirus.
We updated VMware on all hosts to the latest version.
Sysinternals Process Monitor displays "INVALID_NETWORK_RESPONSE" event when the error occurs.
We captured traffic on both the server side and client side when the error occurred and had it analyzed by a network analysis specialist. He observed a peculiar pattern, where client OS starts retrieving the file in question from the file server AFTER VFP application had thrown an error. It seems that VFP application requests a file from OS, then it either gets an abnormal response or just times out and only after that the OS sends packets requesting the file. Again, this happens sporadically.
OpLocks and SMB2 have been disabled on all computers both on the server and client side of the equation for many years and everything was running smoothly until now...
Any advice would be greatly appreciated.
My first piece of advice would be to re-enable OpLocks and SMB2. There is no reason to mess with either of those items as things stand today and you are losing a huge amount of performance running at SMB1 level.
In my experience these issues have almost always been caused by one of the following.
Antivirus/antimalware software.
Replication or online backup software like MozyPro.
The Windows Search indexing service.
You should consider installing the Windows 7 / Server 2008 R2 Enterprise Hotfix Rollup if you haven't already.
That problem mostly related by SMB2!
Some Antivirus Software!
Windows updates! If you use VFP apps by DBF/DBC file. Do not update your system/OS. That is my personal suggestion. Windows Server 2012+ or Windows 10+ prorbably would big problems at near future.
And the point high probably is:
What is your I/O request per secs? if your IO request bigger than 1000~2000 per secs for a dbf file that is a bottle neck; and your storage device is HDD -> you need to switch/update your HDD to SSD. I suggest m.2 pro series SSD.
I want our team to develop against local instances of an Oracle database. With MS SQL, I can use SQL Express Edition. What are my options?
Oracle has an express edition as well. I believe it is more limited though (IIRC, you can only have one database on an instance)
Oracle XE
I have had a lot of success using Oracle 10g Express Edition. It comes with Oracle Aplication Express which allows the simple admin and creation of software via a web interface. It is limited to 4Gb of Disk Space, 1Gb of Ram and will only use 1 processor.
It's free and in my experience has been 100% reliable. It can easily be hosted within a Virtual machine.
Also Oracle SQL Developer is a cross platform application that can be used with any version of Oracle and is also free. Oracle 10g is superb. Go for it :-)
I'm happy with Oracle XE for development purposes.
I do have this piece of wisdow to share; if you're having problems like ORA-12519: TNS:no appropriate service handler found or ORA-12560: TNS:protocol adapter error from time to time then try to change your PROCESSES parameter, logon to Oracle using sys as sysdba and execute the following:
ALTER SYSTEM SET PROCESSES=150 SCOPE=SPFILE;
After changing the PROCESSES parameter restart your Oracle service.
Oracle allows developers to download and use Oracle for free for the purpose of developing software (at least for the initial prototype, best to read the license terms). Downloads here.
We ended up using Oracle XE. Install client, install express, reboot, it just works.
I don't recommend Oracle XE. My co-workers and I have been doing a project in Oracle and got severely tripped up after trying to use XE for our local development instances. The database worked fine until we started running local stress tests, at which point it started dropping connections.
I don't know whether this is an intentional, documented limitation or if perhaps we each just hit a weird bug, but I strongly recommend that you stay away from XE. When we both switched over to the full version, our problems immediately went away.
Also, Oracle doesn't require any kind of licensing confirmation for the full server; you have to click something to say that you have indeed acquired a license, but it doesn't make you prove it. So if you indeed have a license to use Oracle, there's no reason why you can't just install the full version on your development machines.